Author: kwall
Date: Thu Jan  5 13:31:27 2012
New Revision: 1227582

URL: http://svn.apache.org/viewvc?rev=1227582&view=rev
Log:
QPID-3704: OutOfOrderQueue#checkSubscriptionsNotAheadOfDelivery cannot consider 
_lastSeenEntry when determing if _releasedEntry should be retarded

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java?rev=1227582&r1=1227581&r2=1227582&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
 Thu Jan  5 13:31:27 2012
@@ -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 ex
                 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 ex
                         }
                         else
                         {
-                            subnode = context._lastSeenEntry;
                             released = context._releasedEntry;
                         }
-
                     }
                 }
             }
-
         }
     }
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to