summaryrefslogtreecommitdiff
path: root/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java b/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java
index 907d68b733..026761a618 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java
@@ -747,7 +747,7 @@ public class ConcurrentSelectorDeliveryManager implements DeliveryManager
{
Subscription s = _subscriptions.nextSubscriber(msg);
- if (s == null) //no-one can take the message right now.
+ if (s == null || (!s.filtersMessages() && hasQueuedMessages())) //no-one can take the message right now or we're queueing
{
if (debugEnabled)
{
@@ -795,6 +795,12 @@ public class ConcurrentSelectorDeliveryManager implements DeliveryManager
}
else
{
+
+ if (_messages.size() > 0)
+ {
+ _log.error("Direct delivery with queued msgs:" + _messages.size());
+ }
+
//release lock now
_lock.unlock();
synchronized (s.getSendLock())