diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java index 347a68f80b5..cef17432643 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java @@ -1175,6 +1175,7 @@ private void logStartConnect(InetSocketAddress addr) { } @Override + @SuppressFBWarnings("JLM_JSR166_UTILCONCURRENT_MONITORENTER") public void run() { clientCnxnSocket.introduce(this, sessionId, outgoingQueue); clientCnxnSocket.updateNow(); @@ -1303,7 +1304,7 @@ public void run() { } } - synchronized (state) { + synchronized (outgoingQueue) { // When it comes to this point, it guarantees that later queued // packet to outgoingQueue will be notified of death. cleanup(); @@ -1645,6 +1646,7 @@ public Packet queuePacket( return queuePacket(h, r, request, response, cb, clientPath, serverPath, ctx, watchRegistration, null); } + @SuppressFBWarnings("JLM_JSR166_UTILCONCURRENT_MONITORENTER") public Packet queuePacket( RequestHeader h, ReplyHeader r, @@ -1671,7 +1673,7 @@ public Packet queuePacket( // 1. synchronize with the final cleanup() in SendThread.run() to avoid race // 2. synchronized against each packet. So if a closeSession packet is added, // later packet will be notified. - synchronized (state) { + synchronized (outgoingQueue) { if (!state.isAlive() || closing) { conLossPacket(packet); } else {