From 3d6d8479472067bca3245d74d878d244b2322740 Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Thu, 10 Sep 2020 16:37:24 -0700 Subject: [PATCH] Use null ConsoleOut for RelayAppender The RelayAppender should not log directly to console out since it is supposed to be relaying json log messages to connected clients. This was manifesting as double printing on some success messages. --- .../src/main/scala/sbt/internal/util/ConsoleOut.scala | 7 +++++++ main/src/main/scala/sbt/internal/RelayAppender.scala | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala index 17f74c53c..1f3e8e273 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala @@ -21,6 +21,13 @@ sealed trait ConsoleOut { object ConsoleOut { def systemOut: ConsoleOut = terminalOut + private[sbt] object NullConsoleOut extends ConsoleOut { + override val lockObject: AnyRef = this + override def print(s: String): Unit = {} + override def println(): Unit = {} + override def println(s: String): Unit = {} + override def flush(): Unit = {} + } private[sbt] def globalProxy: ConsoleOut = Proxy private[sbt] def setGlobalProxy(out: ConsoleOut): Unit = Proxy.set(out) private[sbt] def getGlobalProxy: ConsoleOut = Proxy.proxy.get diff --git a/main/src/main/scala/sbt/internal/RelayAppender.scala b/main/src/main/scala/sbt/internal/RelayAppender.scala index ed9355b37..2e61daa7c 100644 --- a/main/src/main/scala/sbt/internal/RelayAppender.scala +++ b/main/src/main/scala/sbt/internal/RelayAppender.scala @@ -15,7 +15,7 @@ import sbt.util.Level class RelayAppender(override val name: String) extends ConsoleAppender( name, - ConsoleAppender.Properties.from(ConsoleOut.globalProxy, true, true), + ConsoleAppender.Properties.from(ConsoleOut.NullConsoleOut, true, true), _ => None ) { lazy val exchange = StandardMain.exchange