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

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


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

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

    PROTON-3002 Additional correctness update for decoder cache tracking
---
 .../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 d6b12beb..fba8d09f 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
@@ -1071,11 +1071,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 1070a7af..a9ba5f51 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
@@ -1042,12 +1042,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