]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java
Move Writer creation out of WriterImpls
[signal-cli] / src / main / java / org / asamk / signal / commands / JsonRpcDispatcherCommand.java
index b61916a1950df78136ced5fe12be0db9c926b1be..4cfa58916923455852b2952c7359af9634a1b595 100644 (file)
@@ -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<String> lineSupplier = () -> {
+        final Supplier<String> lineSupplier = getLineSupplier(new InputStreamReader(System.in));
+
+        final var handler = new SignalJsonRpcDispatcherHandler(m, jsonOutputWriter, lineSupplier);
+        handler.handleConnection();
+
+    private Supplier<String> 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();
     }
 }