From 1a7004fd9dab8306ec31b96d9d5e2d5a44256d98 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Mon, 21 Apr 2008 15:57:15 +0000 Subject: remove duplicate check of interest in enqueue, enable new Queue by default git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/broker-queue-refactor@650179 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/server/queue/AMQQueueFactory.java | 4 ++-- .../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; } -- cgit v1.2.1