summaryrefslogtreecommitdiff
path: root/java/broker/src
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-06-17 11:31:41 +0000
committerRobert Gemmell <robbie@apache.org>2010-06-17 11:31:41 +0000
commitf383975c33ab31adc84383e75422314e1e2a03ce (patch)
tree9a306b1d8e2d6c5d10a3a22f59fd74449479deba /java/broker/src
parent1c00c077e5064ed8c3b09a49d1b8aa42ea91a488 (diff)
downloadqpid-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.java11
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java2
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);
}