diff options
| author | Robert Gemmell <robbie@apache.org> | 2010-06-17 11:31:41 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2010-06-17 11:31:41 +0000 |
| commit | f383975c33ab31adc84383e75422314e1e2a03ce (patch) | |
| tree | 9a306b1d8e2d6c5d10a3a22f59fd74449479deba /java/broker/src | |
| parent | 1c00c077e5064ed8c3b09a49d1b8aa42ea91a488 (diff) | |
| download | qpid-python-f383975c33ab31adc84383e75422314e1e2a03ce.tar.gz | |
QPID-2673: dont hold a disposition change listener for messages when accept-mode=NONE and acquire-mode=PRE_ACQUIRED (ie NO_ACK mode)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@955557 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker/src')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java | 11 | ||||
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java b/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java index 5b3f5250c5..a800ea3328 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java +++ b/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java @@ -296,7 +296,10 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr public void run() { - _session.onMessageDispositionChange(_xfr, _action); + if(_action != null) + { + _session.onMessageDispositionChange(_xfr, _action); + } } } @@ -558,10 +561,14 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr { _postIdSettingAction._action = new ExplicitAcceptDispositionChangeListener(entry, this); } - else + else if(_acquireMode != MessageAcquireMode.PRE_ACQUIRED) { _postIdSettingAction._action = new ImplicitAcceptDispositionChangeListener(entry, this); } + else + { + _postIdSettingAction._action = null; + } _session.sendMessage(xfr, _postIdSettingAction); _deliveredCount.incrementAndGet(); diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java index f79a43f330..17a8ce8a43 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java +++ b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java @@ -256,7 +256,7 @@ public class ServerSession extends Session implements PrincipalHolder, SessionCo if(range != null && range.includes(next)) { MessageDispositionChangeListener changeListener = _messageDispositionListenerMap.get(next); - if(changeListener.acquire()) + if(changeListener != null && changeListener.acquire()) { acquired.add(next); } |
