diff options
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java index 1d13ee66c0..66315af9fb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java @@ -37,7 +37,7 @@ public class PriorityQueueList implements QueueEntryList<SimpleQueueEntryImpl> _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 implements QueueEntryList<SimpleQueueEntryImpl> 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 implements QueueEntryList<SimpleQueueEntryImpl> { return new PriorityQueueEntryImpl(this, message); } + + public int getListPriority() + { + return _listPriority; + } } private static class PriorityQueueEntryImpl extends SimpleQueueEntryImpl @@ -186,8 +194,9 @@ public class PriorityQueueList implements QueueEntryList<SimpleQueueEntryImpl> @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) { |
