From 47b2ee30c1a05389f605ee90e2dfd9d19fe00101 Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Thu, 5 Jan 2012 13:31:27 +0000 Subject: 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 --- .../java/org/apache/qpid/server/queue/OutOfOrderQueue.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'java') 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 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; } - } } } - } } -- cgit v1.2.1