X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/510965589b9d33b14958b2034fb087aeff65c134..54d8ee2a4052953e491982db5aec7d08e7403da7:/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..4090d128 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,21 @@ 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(); } }