summaryrefslogtreecommitdiff
path: root/qpid/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
commitbecf086934484a7ce01a3ebf6c4c7e46563e4f28 (patch)
treed1d2627e513de88c5f89b8b50eb8ea6ccf954b5e /qpid/java
parent844556df835785ea337597b6cc240827111b13dc (diff)
downloadqpid-python-becf086934484a7ce01a3ebf6c4c7e46563e4f28.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@1227582 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java10
1 files changed, 3 insertions, 7 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
index b16d1eb8e3..0220a553a7 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
+++ b/qpid/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;
}
-
}
}
}
-
}
}