From 7759c10d23c9bb17a43d709480c83e1ab672c975 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Thu, 6 Dec 2012 16:57:31 +0000
Subject: [PATCH] Don't let references to this escape the constructor.

---
 .../briar/plugins/modem/ReliabilityLayer.java | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java b/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java
index e61748ab90..26b28a76b8 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java
+++ b/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java
@@ -16,28 +16,27 @@ class ReliabilityLayer implements ReadHandler, WriteHandler {
 			Logger.getLogger(ReliabilityLayer.class.getName());
 
 	private final WriteHandler writeHandler;
-	private final Receiver receiver;
-	private final SlipDecoder decoder;
-	private final ReceiverInputStream inputStream;
-	private final SenderOutputStream outputStream;
 	private final BlockingQueue<byte[]> writes;
 
-	private volatile boolean valid = true;
+	private volatile Receiver receiver = null;
+	private volatile SlipDecoder decoder = null;
+	private volatile ReceiverInputStream inputStream = null;
+	private volatile SenderOutputStream outputStream = null;
 	private volatile Thread writer = null;
+	private volatile boolean valid = true;
 
 	ReliabilityLayer(WriteHandler writeHandler) {
 		this.writeHandler = writeHandler;
-		// FIXME: Don't let references to this escape the constructor
+		writes = new LinkedBlockingQueue<byte[]>();
+	}
+
+	void init() {
 		SlipEncoder encoder = new SlipEncoder(this);
 		Sender sender = new Sender(encoder);
 		receiver = new Receiver(sender);
 		decoder = new SlipDecoder(receiver);
 		inputStream = new ReceiverInputStream(receiver);
 		outputStream = new SenderOutputStream(sender);
-		writes = new LinkedBlockingQueue<byte[]>();
-	}
-
-	void init() {
 		writer = new Thread("ReliabilityLayer") {
 			@Override
 			public void run() {
-- 
GitLab