Author: robbie
Date: Fri May 25 15:00:24 2012
New Revision: 1342667
URL: http://svn.apache.org/viewvc?rev=1342667&view=rev
Log:
QPID-4012: update the priority queue entry sub lists to maintain a record of
the priority index they represent, refer to this when comparing queue entries
in order to avoid using the metadata later than is possible
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java?rev=1342667&r1=1342666&r2=1342667&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java
Fri May 25 15:00:24 2012
@@ -37,7 +37,7 @@ public class PriorityQueueList implement
_priorityOffset = 5-((priorities + 1)/2);
for(int i = 0; i < priorities; i++)
{
- _priorityLists[i] = new PriorityQueueEntrySubList(queue);
+ _priorityLists[i] = new PriorityQueueEntrySubList(queue, i);
}
}
@@ -164,9 +164,12 @@ public class PriorityQueueList implement
private static class PriorityQueueEntrySubList extends SimpleQueueEntryList
{
- public PriorityQueueEntrySubList(AMQQueue queue)
+ private int _listPriority;
+
+ public PriorityQueueEntrySubList(AMQQueue queue, int listPriority)
{
super(queue);
+ _listPriority = listPriority;
}
@Override
@@ -174,6 +177,11 @@ public class PriorityQueueList implement
{
return new PriorityQueueEntryImpl(this, message);
}
+
+ public int getListPriority()
+ {
+ return _listPriority;
+ }
}
private static class PriorityQueueEntryImpl extends SimpleQueueEntryImpl
@@ -186,8 +194,9 @@ public class PriorityQueueList implement
@Override
public int compareTo(final QueueEntry o)
{
- byte thisPriority = getMessageHeader().getPriority();
- byte otherPriority = o.getMessageHeader().getPriority();
+ PriorityQueueEntrySubList pqel =
(PriorityQueueEntrySubList)((PriorityQueueEntryImpl)o).getQueueEntryList();
+ int otherPriority = pqel.getListPriority();
+ int thisPriority = ((PriorityQueueEntrySubList)
getQueueEntryList()).getListPriority();
if(thisPriority != otherPriority)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]