diff --git a/main/src/main/scala/sbt/internal/server/NetworkChannel.scala b/main/src/main/scala/sbt/internal/server/NetworkChannel.scala index cbf825797..b3bd4e644 100644 --- a/main/src/main/scala/sbt/internal/server/NetworkChannel.scala +++ b/main/src/main/scala/sbt/internal/server/NetworkChannel.scala @@ -145,7 +145,10 @@ final class NetworkChannel( case Some(_) => state = InHeader process() - case _ => log.error("Got invalid chunk from client: " + str) + case _ => + val msg = s"got invalid chunk from client: $str" + log.error(msg) + logMessage("error", msg) } } case _ => () @@ -226,15 +229,15 @@ final class NetworkChannel( onNotification(ntf) } catch { case LangServerError(code, message) => - logMessage("error", s"Error $code while handling notification: $message") + logMessage("error", s"error $code while handling notification: $message") } case Right(msg) => - log.debug(s"Unhandled message: $msg") + log.debug(s"unhandled message: $msg") case Left(errorDesc) => - logMessage( - "error", - s"Got invalid chunk from client (${new String(chunk.toArray, "UTF-8")}): $errorDesc" - ) + val msg = + s"got invalid chunk from client (${new String(chunk.toArray, "UTF-8")}): $errorDesc" + log.error(msg) + logMessage("error", msg) } } diff --git a/protocol/src/main/scala/sbt/protocol/Serialization.scala b/protocol/src/main/scala/sbt/protocol/Serialization.scala index 75ef805ca..86d87f6ca 100644 --- a/protocol/src/main/scala/sbt/protocol/Serialization.scala +++ b/protocol/src/main/scala/sbt/protocol/Serialization.scala @@ -175,22 +175,23 @@ object Serialization { if ((fields find { _.field == "id" }).isDefined) Converter.fromJson[JsonRpcRequestMessage](json) match { case Success(request) => Right(request) - case Failure(e) => Left(s"Conversion error: ${e.getMessage}") + case Failure(e) => Left(s"conversion error: ${e.getMessage}") } else Converter.fromJson[JsonRpcNotificationMessage](json) match { case Success(notification) => Right(notification) - case Failure(e) => Left(s"Conversion error: ${e.getMessage}") + case Failure(e) => Left(s"conversion error: ${e.getMessage}") } - } else + } else if ((fields find { _.field == "id" }).isDefined) Converter.fromJson[JsonRpcResponseMessage](json) match { case Success(res) => Right(res) - case Failure(e) => Left(s"Conversion error: ${e.getMessage}") + case Failure(e) => Left(s"conversion error: ${e.getMessage}") } + else Left(s"expected JSON-RPC object but found ${new String(bytes.toArray, "UTF-8")}") case Success(json) => - Left(s"Expected JSON object but found $json") + Left(s"expected JSON object but found ${new String(bytes.toArray, "UTF-8")}") case Failure(e) => - Left(s"Parse error: ${e.getMessage}") + Left(s"parse error: ${e.getMessage}") } }