From 7b2f30474a993fed398356fd38d2c6103b1d00d3 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Mon, 21 Jan 2019 15:34:18 +0100 Subject: [PATCH] Make sure the reader thread is ready before sending any commands --- client/src/main/java/ctbrec/ui/ExternalBrowser.java | 9 ++++++++- client/src/main/resources/logback.xml | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/client/src/main/java/ctbrec/ui/ExternalBrowser.java b/client/src/main/java/ctbrec/ui/ExternalBrowser.java index 79d84997..cd8f449a 100644 --- a/client/src/main/java/ctbrec/ui/ExternalBrowser.java +++ b/client/src/main/java/ctbrec/ui/ExternalBrowser.java @@ -31,6 +31,7 @@ public class ExternalBrowser implements AutoCloseable { private Socket socket; private Thread reader; private volatile boolean stopped = true; + private Object ready = new Object(); public static ExternalBrowser getInstance() { return INSTANCE; @@ -51,6 +52,9 @@ public class ExternalBrowser implements AutoCloseable { LOG.debug("Browser started"); connectToRemoteControlSocket(); + synchronized (ready) { + ready.wait(); + } if(LOG.isTraceEnabled()) { LOG.debug("Connected to remote control server. Sending config {}", jsonConfig); } else { @@ -131,9 +135,12 @@ public class ExternalBrowser implements AutoCloseable { try { BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line; + synchronized (ready) { + ready.notify(); + } while( !Thread.interrupted() && (line = br.readLine()) != null ) { + LOG.debug(line); if(!line.startsWith("{")) { - System.err.println(line); } else { if(messageListener != null) { messageListener.accept(line); diff --git a/client/src/main/resources/logback.xml b/client/src/main/resources/logback.xml index a2555eb9..b6629bea 100644 --- a/client/src/main/resources/logback.xml +++ b/client/src/main/resources/logback.xml @@ -27,6 +27,7 @@ +