mirror of
https://github.com/corda/corda.git
synced 2025-06-03 16:10:58 +00:00
print out the underlying error when an RPC call fails (#4605)
make it red.
This commit is contained in:
parent
c4b5ac2e01
commit
97df10e1f5
@ -2,8 +2,8 @@ package net.corda.tools.shell.utlities
|
|||||||
|
|
||||||
import net.corda.core.internal.Emoji
|
import net.corda.core.internal.Emoji
|
||||||
import net.corda.core.messaging.FlowProgressHandle
|
import net.corda.core.messaging.FlowProgressHandle
|
||||||
import net.corda.core.utilities.contextLogger
|
|
||||||
import net.corda.core.utilities.loggerFor
|
import net.corda.core.utilities.loggerFor
|
||||||
|
import net.corda.tools.shell.utlities.StdoutANSIProgressRenderer.draw
|
||||||
import org.apache.commons.lang.SystemUtils
|
import org.apache.commons.lang.SystemUtils
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import org.apache.logging.log4j.core.LogEvent
|
import org.apache.logging.log4j.core.LogEvent
|
||||||
@ -16,8 +16,9 @@ import org.fusesource.jansi.Ansi
|
|||||||
import org.fusesource.jansi.Ansi.Attribute
|
import org.fusesource.jansi.Ansi.Attribute
|
||||||
import org.fusesource.jansi.AnsiConsole
|
import org.fusesource.jansi.AnsiConsole
|
||||||
import org.fusesource.jansi.AnsiOutputStream
|
import org.fusesource.jansi.AnsiOutputStream
|
||||||
import org.slf4j.LoggerFactory
|
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
|
import java.util.stream.IntStream
|
||||||
|
import kotlin.streams.toList
|
||||||
|
|
||||||
abstract class ANSIProgressRenderer {
|
abstract class ANSIProgressRenderer {
|
||||||
|
|
||||||
@ -107,6 +108,7 @@ abstract class ANSIProgressRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Synchronized protected fun draw(moveUp: Boolean, error: Throwable? = null) {
|
@Synchronized protected fun draw(moveUp: Boolean, error: Throwable? = null) {
|
||||||
|
|
||||||
if (!usingANSI) {
|
if (!usingANSI) {
|
||||||
val currentMessage = tree.getOrNull(treeIndex)?.second
|
val currentMessage = tree.getOrNull(treeIndex)?.second
|
||||||
if (currentMessage != null && currentMessage != prevMessagePrinted) {
|
if (currentMessage != null && currentMessage != prevMessagePrinted) {
|
||||||
@ -130,7 +132,16 @@ abstract class ANSIProgressRenderer {
|
|||||||
|
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
val errorIcon = if (usingUnicode) Emoji.skullAndCrossbones else "ERROR: "
|
val errorIcon = if (usingUnicode) Emoji.skullAndCrossbones else "ERROR: "
|
||||||
ansi.a("$errorIcon ${error.message}")
|
|
||||||
|
var errorToPrint = error
|
||||||
|
var indent = 0
|
||||||
|
while (errorToPrint != null) {
|
||||||
|
ansi.fgRed()
|
||||||
|
ansi.a("${IntStream.range(indent, indent).mapToObj { "\t" }.toList().joinToString(separator = "") { s -> s }} $errorIcon ${error.message}")
|
||||||
|
ansi.reset()
|
||||||
|
errorToPrint = error.cause
|
||||||
|
indent++
|
||||||
|
}
|
||||||
ansi.eraseLine(Ansi.Erase.FORWARD)
|
ansi.eraseLine(Ansi.Erase.FORWARD)
|
||||||
ansi.newline()
|
ansi.newline()
|
||||||
newLinesDrawn++
|
newLinesDrawn++
|
||||||
|
Loading…
x
Reference in New Issue
Block a user