From 1fd6d7a6d5cde6a435b7f9eefe52143585bf6cff Mon Sep 17 00:00:00 2001 From: akwizgran Date: Mon, 6 May 2019 15:53:42 +0100 Subject: [PATCH] Use @GuardedBy annotation. --- .../transport/TransportKeyManagerImpl.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java index 30731936e..7546f6562 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java @@ -28,10 +28,12 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Logger; +import javax.annotation.concurrent.GuardedBy; import javax.annotation.concurrent.ThreadSafe; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.logging.Level.WARNING; +import static java.util.logging.Logger.getLogger; import static org.briarproject.bramble.api.transport.TransportConstants.MAX_CLOCK_DIFFERENCE; import static org.briarproject.bramble.api.transport.TransportConstants.PROTOCOL_VERSION; import static org.briarproject.bramble.api.transport.TransportConstants.TAG_LENGTH; @@ -43,7 +45,7 @@ import static org.briarproject.bramble.util.LogUtils.logException; class TransportKeyManagerImpl implements TransportKeyManager { private static final Logger LOG = - Logger.getLogger(TransportKeyManagerImpl.class.getName()); + getLogger(TransportKeyManagerImpl.class.getName()); private final DatabaseComponent db; private final TransportCrypto transportCrypto; @@ -55,9 +57,11 @@ class TransportKeyManagerImpl implements TransportKeyManager { private final AtomicBoolean used = new AtomicBoolean(false); private final ReentrantLock lock = new ReentrantLock(); - // The following are locking: lock + @GuardedBy("lock") private final Map keys = new HashMap<>(); + @GuardedBy("lock") private final Map inContexts = new HashMap<>(); + @GuardedBy("lock") private final Map outContexts = new HashMap<>(); TransportKeyManagerImpl(DatabaseComponent db, @@ -113,7 +117,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { return rotationResult; } - // Locking: lock + @GuardedBy("lock") private void addKeys(Collection keys) { for (TransportKeySet ks : keys) { // TODO: Keys may be for a pending contact @@ -122,7 +126,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { } } - // Locking: lock + @GuardedBy("lock") private void addKeys(KeySetId keySetId, ContactId contactId, MutableTransportKeys m) { MutableKeySet ks = new MutableKeySet(keySetId, contactId, m); @@ -133,7 +137,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { considerReplacingOutgoingKeys(ks); } - // Locking: lock + @GuardedBy("lock") private void encodeTags(KeySetId keySetId, ContactId contactId, MutableIncomingKeys inKeys) { for (long streamNumber : inKeys.getWindow().getUnseen()) { @@ -146,7 +150,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { } } - // Locking: lock + @GuardedBy("lock") private void considerReplacingOutgoingKeys(MutableKeySet ks) { // Use the active outgoing keys with the highest key set ID if (ks.getTransportKeys().getCurrentOutgoingKeys().isActive()) {