From 4d5dbf55fecf3d0e9a1ffa932bd56df6f313bbd3 Mon Sep 17 00:00:00 2001
From: bontric <benjohnwie@gmail.com>
Date: Tue, 25 Sep 2018 13:06:25 +0200
Subject: [PATCH] Remove unneccesary enableRequestHandling function from
 MailboxProtocol

---
 .../mailbox/protocol/MailboxProtocol.java        | 16 ++++++----------
 .../protocol/MailboxProtocolIntegrationTest.java |  8 --------
 2 files changed, 6 insertions(+), 18 deletions(-)

diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java
index 089526ef2..3542593c3 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java
@@ -44,8 +44,7 @@ public class MailboxProtocol implements Runnable {
 			new LinkedHashMap<>();
 
 	private volatile AtomicBoolean stopped = new AtomicBoolean(false);
-	private volatile Thread writingThread;
-	private volatile Thread readingThread;
+	private volatile Thread writingThread = null;
 
 
 	public MailboxProtocol(Executor ioExecutor, BdfWriter mailboxBdfWriter,
@@ -105,18 +104,22 @@ public class MailboxProtocol implements Runnable {
 	 */
 	@Override
 	public void run() {
+		ioExecutor.execute(() -> readIncomingMessages());
 		writeOutgoingMessages();
 	}
 
 	/**
 	 * Register a Handler for a specific request type.
 	 * <p>
-	 * NOTE: {@link this#enableRequestHandling()} MUST be called after all handlers
+	 * NOTE: {@link this#run()} MUST be called AFTER all handlers
 	 * have been registered!
 	 *
 	 * @param handler
 	 */
 	public void registerRequestHandler(MailboxRequestHandler handler) {
+		if (writingThread != null)
+			throw new RuntimeException(
+					"Trying to register request handler after run call!");
 		if (requestHandlers.containsKey(handler.getType()))
 			throw new RuntimeException(
 					"Handler for " + handler.getType().toString() +
@@ -124,13 +127,6 @@ public class MailboxProtocol implements Runnable {
 		requestHandlers.put(handler.getType(), handler);
 	}
 
-	/**
-	 * Request handling once all request handlers are registered
-	 */
-	public void enableRequestHandling() {
-		ioExecutor.execute(() -> readIncomingMessages());
-	}
-
 	private void readIncomingMessages() {
 		BdfList bdfMsg;
 
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java
index f9de586ba..c7072d8f0 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java
@@ -108,7 +108,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		MailboxRequest req =
 				new MailboxRequestStore(new ContactId(123), "test".getBytes());
@@ -149,8 +148,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
-
 		// Test Error Response
 		MailboxRequestTake req =
 				new MailboxRequestTake("Test".getBytes());
@@ -186,7 +183,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 
@@ -217,7 +213,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 		pipedOS.close();
@@ -251,7 +246,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 		assertEquals(true, req.awaitAndGetResponse());
@@ -286,7 +280,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 		assertEquals(true, req.awaitAndGetResponse());
@@ -321,7 +314,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 
-- 
GitLab