This is an automated email from the ASF dual-hosted git repository.

merlimat pushed a commit to branch branch-4.17
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git

commit 8c38782b230abe1193b63616944423f29c84c4f0
Author: Justin Prieto <[email protected]>
AuthorDate: Thu Apr 23 10:15:31 2026 -0400

    Fix race condition NPE in V3 response handling during timeout check (#4737)
---
 .../main/java/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 39e3311e1f..6bca48c1b2 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 @@ public class PerChannelBookieClient extends 
ChannelInboundHandlerAdapter {
         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 class PerChannelBookieClient extends 
ChannelInboundHandlerAdapter {
                 }
             });
         }
-
-        completionObjects.remove(key);
     }
 
     void initTLSHandshake() {

Reply via email to