X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/b5eef3ccad4cfc291b9c37ffc38df65e6adc32fa..5dd602614cc44c30ef4a60a1c043e44a8e31a8ca:/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java diff --git a/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java b/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java index b61916a1..4cfa5891 100644 --- a/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java +++ b/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java @@ -16,6 +16,7 @@ import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.io.Reader; import java.util.List; import java.util.function.Supplier; @@ -49,16 +50,20 @@ public class JsonRpcDispatcherCommand implements LocalCommand { m.setIgnoreAttachments(ignoreAttachments); final var jsonOutputWriter = (JsonWriter) outputWriter; - final var reader = new BufferedReader(new InputStreamReader(System.in)); - final Supplier lineSupplier = () -> { + final Supplier lineSupplier = getLineSupplier(new InputStreamReader(System.in)); + + final var handler = new SignalJsonRpcDispatcherHandler(m, jsonOutputWriter, lineSupplier); + handler.handleConnection(); + + private Supplier getLineSupplier(final Reader reader) { + final var bufferedReader = new BufferedReader(reader); + return () -> { try { - return reader.readLine(); + return bufferedReader.readLine(); } catch (IOException e) { - throw new AssertionError(e); + logger.error("Error occurred while reading line", e); + return null; } }; - - final var handler = new SignalJsonRpcDispatcherHandler(m, jsonOutputWriter, lineSupplier); - handler.handleConnection(); } }