From cb06ebc5d2076262389730658ebba161bd06c0dd Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Fri, 14 Oct 2011 21:37:55 +0100 Subject: [PATCH] Locking. --- .../transport/stream/OutgoingStreamConnection.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/components/net/sf/briar/transport/stream/OutgoingStreamConnection.java b/components/net/sf/briar/transport/stream/OutgoingStreamConnection.java index 146f925851..f7793de70e 100644 --- a/components/net/sf/briar/transport/stream/OutgoingStreamConnection.java +++ b/components/net/sf/briar/transport/stream/OutgoingStreamConnection.java @@ -18,7 +18,7 @@ public class OutgoingStreamConnection extends StreamConnection { private final TransportId transportId; - private long connectionNum = -1L; + private long connectionNum = -1L; // Locking: this OutgoingStreamConnection(ConnectionReaderFactory connReaderFactory, ConnectionWriterFactory connWriterFactory, DatabaseComponent db, @@ -33,8 +33,10 @@ public class OutgoingStreamConnection extends StreamConnection { @Override protected ConnectionReader createConnectionReader() throws DbException, IOException { - if(connectionNum == -1L) - connectionNum = db.getConnectionNumber(contactId, transportId); + synchronized(this) { + if(connectionNum == -1L) + connectionNum = db.getConnectionNumber(contactId, transportId); + } byte[] secret = db.getSharedSecret(contactId); return connReaderFactory.createConnectionReader( connection.getInputStream(), false, transportId, connectionNum, @@ -44,8 +46,10 @@ public class OutgoingStreamConnection extends StreamConnection { @Override protected ConnectionWriter createConnectionWriter() throws DbException, IOException { - if(connectionNum == -1L) - connectionNum = db.getConnectionNumber(contactId, transportId); + synchronized(this) { + if(connectionNum == -1L) + connectionNum = db.getConnectionNumber(contactId, transportId); + } byte[] secret = db.getSharedSecret(contactId); return connWriterFactory.createConnectionWriter( connection.getOutputStream(), Long.MAX_VALUE, true, transportId, -- GitLab