You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2025/12/19 06:06:32 UTC

(qpid-proton) 02/06: PROTON-2873: [Python] Remove caching for delivery remote disposition

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

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

commit 32bcfccbd295bf576c8b5e02ed50afb8d6fbb7a1
Author: Andrew Stitcher <as...@apache.org>
AuthorDate: Thu Dec 18 21:06:28 2025 -0500

    PROTON-2873: [Python] Remove caching for delivery remote disposition
    
    We can't cache the remote disposition because it might be updated by the
    remote peer, but we have no way to know it has been changed in the
    delivery to invalidate the cache entry.
---
 python/proton/_delivery.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/python/proton/_delivery.py b/python/proton/_delivery.py
index 9639d7b06..4b588b2f9 100644
--- a/python/proton/_delivery.py
+++ b/python/proton/_delivery.py
@@ -74,6 +74,11 @@ if TYPE_CHECKING:
 
 
 class DispositionType(IntEnum):
+    EMPTY = 0
+    """
+    An empty disposition.
+    """
+
     RECEIVED = PN_RECEIVED
     """
     A non terminal state indicating how much (if any) message data
@@ -532,7 +537,7 @@ class TransactionalDisposition(LocalDisposition):
 
     def __init__(self, id, outcome=None):
         self._id = id
-        # Currently the transactional disposition C API can only hold the outcome type
+        # Currently the transactional disposition C API can only set the outcome type
         if isinstance(outcome, Disposition):
             self._outcome_type = outcome.type
         else:
@@ -612,13 +617,11 @@ class Delivery(Wrapper):
     def __init__(self, impl):
         if self.Uninitialized():
             self._local = None
-            self._remote = None
 
     @property
     def remote(self) -> RemoteDisposition:
-        if self._remote is None:
-            self._remote = RemoteDisposition(self._impl)
-        return self._remote
+        # Can't cache as there's no way to invalidate
+        return RemoteDisposition(self._impl)
 
     @property
     def local(self) -> LocalDisposition:


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org