From 5cdec34bebe8c41f506112b660d1cf9a25363687 Mon Sep 17 00:00:00 2001 From: Samuel CLARENC Date: Thu, 1 Jul 2021 09:18:36 +0200 Subject: [PATCH] Add a Try around process execution --- .../scala/sbt/internal/client/NetworkClient.scala | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala b/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala index d6b376dac..d2f6709ec 100644 --- a/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala +++ b/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala @@ -347,9 +347,14 @@ class NetworkClient( .directory(arguments.baseDirectory) .redirectInput(Redirect.PIPE) processBuilder.environment.put(Terminal.TERMINAL_PROPS, props) - val process = processBuilder.start() - sbtProcess.set(process) - Some(process) + Try(processBuilder.start()) match { + case Success(process) => + sbtProcess.set(process) + Some(process) + case Failure(e) => + if (log) console.appendLog(Level.Error, s"Failed to start server : $e") + throw new ServerFailedException + } case _ => if (log) { console.appendLog(Level.Info, "sbt server is booting up")