[hornetq-commits] JBoss hornetq SVN: r10221 - in branches/Branch_2_2_EAP: tests/src/org/hornetq/tests/timing/core/server/impl and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Feb 16 16:47:38 EST 2011
Author: clebert.suconic at jboss.com
Date: 2011-02-16 16:47:37 -0500 (Wed, 16 Feb 2011)
New Revision: 10221
Modified:
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/timing/core/server/impl/QueueImplTest.java
Log:
https://issues.jboss.org/browse/JBPAPP-5926 - further fixing scheduled delivery order of delivery
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java 2011-02-16 20:30:58 UTC (rev 10220)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java 2011-02-16 21:47:37 UTC (rev 10221)
@@ -1275,8 +1275,10 @@
{
for (ConsumerHolder holder : this.consumerList)
{
- // GC finalize will take care of closing it
- // We can't close it now as the iterator could be already being used
+ if (holder.iter != null)
+ {
+ holder.iter.close();
+ }
holder.iter = null;
}
}
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java 2011-02-16 20:30:58 UTC (rev 10220)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java 2011-02-16 21:47:37 UTC (rev 10221)
@@ -69,11 +69,13 @@
{
if (tail)
{
- scheduledReferences.add(ref);
+ // We do the opposite what the parameter says as the Runnable will always add it to the head
+ scheduledReferences.addFirst(ref);
}
else
{
- scheduledReferences.addFirst(ref);
+ // We do the opposite what the parameter says as the Runnable will always add it to the head
+ scheduledReferences.add(ref);
}
}
@@ -198,7 +200,8 @@
Queue queue = reference.getQueue();
synchronized (queue)
{
- queue.addTail(reference);
+ queue.resetAllIterators();
+ queue.addHead(reference);
}
}
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/timing/core/server/impl/QueueImplTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/timing/core/server/impl/QueueImplTest.java 2011-02-16 20:30:58 UTC (rev 10220)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/timing/core/server/impl/QueueImplTest.java 2011-02-16 21:47:37 UTC (rev 10221)
@@ -119,15 +119,15 @@
// Scheduled refs are added back to *FRONT* of queue - otherwise if there were many messages in the queue
// They may get stranded behind a big backlog
+ refs.add(ref1);
+ refs.add(ref8);
+ refs.add(ref5);
+ refs.add(ref6);
+ refs.add(ref7);
refs.add(ref2);
refs.add(ref3);
refs.add(ref4);
- refs.add(ref7);
- refs.add(ref6);
- refs.add(ref5);
- refs.add(ref8);
- refs.add(ref1);
Thread.sleep(7500);
More information about the hornetq-commits
mailing list