diff --git a/gclc-socket/src/main/java/net/bigeon/gclc/socket/PluggableConsoleInput.java b/gclc-socket/src/main/java/net/bigeon/gclc/socket/PluggableConsoleInput.java index ae0dc04..5f66406 100644 --- a/gclc-socket/src/main/java/net/bigeon/gclc/socket/PluggableConsoleInput.java +++ b/gclc-socket/src/main/java/net/bigeon/gclc/socket/PluggableConsoleInput.java @@ -41,6 +41,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.InterruptedIOException; import java.io.PrintStream; import java.nio.charset.StandardCharsets; import java.util.function.Supplier; @@ -119,6 +120,7 @@ public final class PluggableConsoleInput implements ConsoleInput { if (prompting) { // print the hint, to indicate we are waiting for a user input. out.print(hint); + out.println(); out.flush(); } final InputStreamReader streamReader = new InputStreamReader(stream, @@ -279,7 +281,13 @@ public final class PluggableConsoleInput implements ConsoleInput { final long connexionTimeout) throws IOException, InterruptedException { synchronized (connexionLock) { if (connected) { - return connexion.getNextMessage(messageTimeout); + try { + return connexion.getNextMessage(messageTimeout); + } catch (final InterruptedIOException e) { + throw e; + } catch (final IOException e) { + LOGGER.log(Level.INFO, "Communication was abrubptly interrupted", e); + } } connexionLock.wait(connexionTimeout); }