diff options
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java | 4 | ||||
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java | 18 |
2 files changed, 7 insertions, 15 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java index c2e53ea3c7..99da9c20fa 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java @@ -34,7 +34,7 @@ public class AMQQueueFactory VirtualHost virtualHost) throws AMQException { - return new AMQQueueImpl(name, durable, owner, autoDelete, virtualHost); - //return new SimpleAMQQueue(name, durable, owner, autoDelete, virtualHost); + //return new AMQQueueImpl(name, durable, owner, autoDelete, virtualHost); + return new SimpleAMQQueue(name, durable, owner, autoDelete, virtualHost); } } diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java b/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java index b028d60b19..6dae7edb72 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java @@ -382,13 +382,11 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener Subscription sub = nextNode.getSubscription(); synchronized(sub.getSendLock()) { - if(subscriptionReady(sub, entry) + if(subscriptionReadyAndHasInterest(sub, entry) && !sub.isSuspended() && sub.isActive()) { - if( sub.hasInterest(entry) ) - { if( !sub.wouldSuspend(entry)) { if(!sub.isBrowser() && entry.acquire(sub)) @@ -406,15 +404,8 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener } } - } - else - { - QueueEntryList.QueueEntryNode queueEntryNode = (QueueEntryList.QueueEntryNode) sub.getQueueContext(); - if(queueEntryNode.getNext() == entry) - { - sub.setQueueContext(queueEntryNode,entry); - } - } + + } } } @@ -456,7 +447,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener } - private boolean subscriptionReady(final Subscription sub, final QueueEntry entry) + private boolean subscriptionReadyAndHasInterest(final Subscription sub, final QueueEntry entry) { QueueEntryList.QueueEntryNode node = (QueueEntryList.QueueEntryNode) sub.getQueueContext(); @@ -471,6 +462,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener } else { + node = null; break; } |