summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-01-05 13:31:27 +0000
committerKeith Wall <kwall@apache.org>2012-01-05 13:31:27 +0000
commit47b2ee30c1a05389f605ee90e2dfd9d19fe00101 (patch)
treedb1da962a72724c0a5665660a89be7f19db784c4 /java
parent8bb4c92fd3df90732e428d34aa730f71230d1484 (diff)
downloadqpid-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.java10
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;
}
-
}
}
}
-
}
}