You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2016/11/03 09:25:39 UTC
svn commit: r1767849 -
/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
Author: lquack
Date: Thu Nov 3 09:25:39 2016
New Revision: 1767849
URL: http://svn.apache.org/viewvc?rev=1767849&view=rev
Log:
QPID-7491: [Java Broker] Fix AbstractSystemMessageSource#pullMessage
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java?rev=1767849&r1=1767848&r2=1767849&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java Thu Nov 3 09:25:39 2016
@@ -148,6 +148,34 @@ public abstract class AbstractSystemMess
@Override
public void pullMessage()
{
+ AMQPConnection<?> connection = _target.getSessionModel().getAMQPConnection();
+ _target.getSendLock();
+ try
+ {
+ connection.alwaysAllowMessageAssignmentInThisThreadIfItIsIOThread(true);
+
+ try
+ {
+ if (!_queue.isEmpty())
+ {
+ final PropertiesMessageInstance propertiesMessageInstance = _queue.get(0);
+ if (!_target.isSuspended() && _target.allocateCredit(propertiesMessageInstance.getMessage()))
+ {
+ _queue.remove(0);
+ _target.send(this, propertiesMessageInstance, false);
+ }
+ }
+ }
+ finally
+ {
+ connection.alwaysAllowMessageAssignmentInThisThreadIfItIsIOThread(false);
+ }
+ }
+ finally
+ {
+ _target.releaseSendLock();
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org