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

tabish121 pushed a commit to branch 1.x
in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git


The following commit(s) were added to refs/heads/1.x by this push:
     new 99d11e6d PROTON-3002 Additional correctness update for decoder cache 
tracking
99d11e6d is described below

commit 99d11e6d595f5b949faeac4e8953f57cef54a8b6
Author: Timothy Bish <[email protected]>
AuthorDate: Wed Nov 4 19:04:43 2026 -0500

    PROTON-3002 Additional correctness update for decoder cache tracking
    
    (cherry picked from commit fe3abc6f5f4ad42bbdedac05ec247afdf9bfe3ec)
---
 .../org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java |  8 +++-----
 .../qpid/protonj2/codec/decoders/ProtonStreamDecoder.java      | 10 ++++------
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git 
a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java
 
b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java
index c164fc31..09031f0f 100644
--- 
a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java
+++ 
b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java
@@ -1053,11 +1053,9 @@ public class ProtonDecoder implements Decoder {
         };
 
         if (canCache && 
unknownDescribedTypeDecodersSlots.getAndUpdate(available -> available > 0 ? 
available - 1 : available) > 0) {
-            if (unknownDescribedTypeDecodersSlots.getAndDecrement() > 0) {
-                final UnknownDescribedTypeDecoder previous = 
unknownDescribedTypeDecoders.putIfAbsent(descriptor, typeDecoder);
-                if (previous != null) {
-                    unknownDescribedTypeDecodersSlots.incrementAndGet();
-                }
+            final UnknownDescribedTypeDecoder previous = 
unknownDescribedTypeDecoders.putIfAbsent(descriptor, typeDecoder);
+            if (previous != null) {
+                unknownDescribedTypeDecodersSlots.incrementAndGet();
             }
         }
 
diff --git 
a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java
 
b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java
index 7fbcc283..354d963a 100644
--- 
a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java
+++ 
b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java
@@ -1024,12 +1024,10 @@ public final class ProtonStreamDecoder implements 
StreamDecoder {
             }
         };
 
-        if (canCache && unknownDescribedTypeDecodersSlots.get() > 0) {
-            if (canCache && 
unknownDescribedTypeDecodersSlots.getAndUpdate(available -> available > 0 ? 
available - 1 : available) > 0) {
-                final UnknownDescribedTypeDecoder previous = 
unknownDescribedTypeDecoders.putIfAbsent(descriptor, streamTypeDecoder);
-                if (previous != null) {
-                    unknownDescribedTypeDecodersSlots.incrementAndGet();
-                }
+        if (canCache && 
unknownDescribedTypeDecodersSlots.getAndUpdate(available -> available > 0 ? 
available - 1 : available) > 0) {
+            final UnknownDescribedTypeDecoder previous = 
unknownDescribedTypeDecoders.putIfAbsent(descriptor, streamTypeDecoder);
+            if (previous != null) {
+                unknownDescribedTypeDecodersSlots.incrementAndGet();
             }
         }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to