From b0ff34164dd69b3a2325a097d8ab33123f9aa392 Mon Sep 17 00:00:00 2001 From: Justin Prieto Date: Thu, 26 Mar 2026 14:12:57 -0400 Subject: [PATCH] Fix race condition NPE in V3 response handling during timeout check --- .../org/apache/bookkeeper/proto/PerChannelBookieClient.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java index 892306797eb..e49cca9409b 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java @@ -1535,7 +1535,7 @@ private void readV3Response(final Response response) { final BKPacketHeader header = response.getHeader(); final CompletionKey key = newCompletionKey(header.getTxnId(), header.getOperation()); - final CompletionValue completionValue = completionObjects.get(key); + final CompletionValue completionValue = completionObjects.remove(key); if (null == completionValue) { // Unexpected response, so log it. The txnId should have been present. @@ -1560,8 +1560,6 @@ public String toString() { } }); } - - completionObjects.remove(key); } void initTLSHandshake() {