Author: robbie
Date: Thu Jun 17 11:31:41 2010
New Revision: 955557
URL: http://svn.apache.org/viewvc?rev=955557&view=rev
Log:
QPID-2673: dont hold a disposition change listener for messages when
accept-mode=NONE and acquire-mode=PRE_ACQUIRED (ie NO_ACK mode)
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java?rev=955557&r1=955556&r2=955557&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
Thu Jun 17 11:31:41 2010
@@ -296,7 +296,10 @@ public class Subscription_0_10 implement
public void run()
{
- _session.onMessageDispositionChange(_xfr, _action);
+ if(_action != null)
+ {
+ _session.onMessageDispositionChange(_xfr, _action);
+ }
}
}
@@ -558,10 +561,14 @@ public class Subscription_0_10 implement
{
_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();
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java?rev=955557&r1=955556&r2=955557&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
Thu Jun 17 11:31:41 2010
@@ -256,7 +256,7 @@ public class ServerSession extends Sessi
if(range != null && range.includes(next))
{
MessageDispositionChangeListener changeListener =
_messageDispositionListenerMap.get(next);
- if(changeListener.acquire())
+ if(changeListener != null && changeListener.acquire())
{
acquired.add(next);
}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]