diff --git a/node/src/main/kotlin/net/corda/node/utilities/ANSIProgressRenderer.kt b/node/src/main/kotlin/net/corda/node/utilities/ANSIProgressRenderer.kt index 2701268474..9bc478b1e4 100644 --- a/node/src/main/kotlin/net/corda/node/utilities/ANSIProgressRenderer.kt +++ b/node/src/main/kotlin/net/corda/node/utilities/ANSIProgressRenderer.kt @@ -46,7 +46,7 @@ object ANSIProgressRenderer { prevMessagePrinted = null prevLinesDrawn = 0 draw(true) - subscription = value?.changes?.subscribe({ draw(true) }, { draw(true, it) }) + subscription = value?.changes?.subscribe({ draw(true) }, { draw(true, it) }, { progressTracker = null; draw(true) }) } private fun setup() { @@ -106,11 +106,9 @@ object ANSIProgressRenderer { private var prevLinesDrawn = 0 @Synchronized private fun draw(moveUp: Boolean, error: Throwable? = null) { - val pt = progressTracker!! - if (!usingANSI) { - val currentMessage = pt.currentStepRecursive.label - if (currentMessage != prevMessagePrinted) { + val currentMessage = progressTracker?.currentStepRecursive?.label + if (currentMessage != null && currentMessage != prevMessagePrinted) { println(currentMessage) prevMessagePrinted = currentMessage } @@ -125,6 +123,7 @@ object ANSIProgressRenderer { // Put a blank line between any logging and us. ansi.eraseLine() ansi.newline() + val pt = progressTracker ?: return var newLinesDrawn = 1 + pt.renderLevel(ansi, 0, error != null) if (error != null) {