diff options
| author | Keith Wall <kwall@apache.org> | 2012-01-05 13:31:27 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2012-01-05 13:31:27 +0000 |
| commit | 47b2ee30c1a05389f605ee90e2dfd9d19fe00101 (patch) | |
| tree | db1da962a72724c0a5665660a89be7f19db784c4 /java | |
| parent | 8bb4c92fd3df90732e428d34aa730f71230d1484 (diff) | |
| download | qpid-python-47b2ee30c1a05389f605ee90e2dfd9d19fe00101.tar.gz | |
QPID-3704: OutOfOrderQueue#checkSubscriptionsNotAheadOfDelivery cannot consider _lastSeenEntry when determing if _releasedEntry should be retarded
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1227582 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java b/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java index b16d1eb8e3..0220a553a7 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java @@ -1,12 +1,14 @@ package org.apache.qpid.server.queue; import java.util.Map; + import org.apache.qpid.server.subscription.Subscription; import org.apache.qpid.server.subscription.SubscriptionList; import org.apache.qpid.server.virtualhost.VirtualHost; public abstract class OutOfOrderQueue extends SimpleAMQQueue { + protected OutOfOrderQueue(String name, boolean durable, String owner, boolean autoDelete, boolean exclusive, VirtualHost virtualHost, QueueEntryListFactory entryListFactory, Map<String, Object> arguments) @@ -27,11 +29,8 @@ public abstract class OutOfOrderQueue extends SimpleAMQQueue QueueContext context = (QueueContext) subscription.getQueueContext(); if(context != null) { - QueueEntry subnode = context._lastSeenEntry; QueueEntry released = context._releasedEntry; - - while(subnode != null && entry.compareTo(subnode) < 0 && !entry.isAcquired() - && (released == null || released.compareTo(entry) > 0)) + while(!entry.isAcquired() && (released == null || released.compareTo(entry) > 0)) { if(QueueContext._releasedUpdater.compareAndSet(context,released,entry)) { @@ -39,14 +38,11 @@ public abstract class OutOfOrderQueue extends SimpleAMQQueue } else { - subnode = context._lastSeenEntry; released = context._releasedEntry; } - } } } - } } |
