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 @@
+