Merge pull request #5614 from eed3si9n/wip/npe_in_log

Fix NullPointerException in appendLog
This commit is contained in:
Ethan Atkins 2020-08-11 09:52:18 -07:00 committed by GitHub
commit dcc5c6df0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 13 deletions

View File

@ -484,21 +484,25 @@ trait Appender extends AutoCloseable {
message: String
): Unit =
try {
val len =
labelColor.length + label.length + messageColor.length + reset.length * 3 + ClearScreenAfterCursor.length
val builder: StringBuilder = new StringBuilder(len)
message.linesIterator.foreach { line =>
builder.ensureCapacity(len + line.length + 4)
builder.setLength(0)
// according to https://github.com/sbt/sbt/issues/5608, sometimes we get a null message
if (message == null) ()
else {
val len =
labelColor.length + label.length + messageColor.length + reset.length * 3 + ClearScreenAfterCursor.length
val builder: StringBuilder = new StringBuilder(len)
message.linesIterator.foreach { line =>
builder.ensureCapacity(len + line.length + 4)
builder.setLength(0)
def fmted(a: String, b: String) = builder.append(reset).append(a).append(b).append(reset)
def fmted(a: String, b: String) = builder.append(reset).append(a).append(b).append(reset)
builder.append(reset).append('[')
fmted(labelColor, label)
builder.append("] ")
fmted(messageColor, line)
builder.append(ClearScreenAfterCursor)
write(builder.toString)
builder.append(reset).append('[')
fmted(labelColor, label)
builder.append("] ")
fmted(messageColor, line)
builder.append(ClearScreenAfterCursor)
write(builder.toString)
}
}
} catch { case _: InterruptedException => }