summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-06-05 17:39:07 +0000
committerGordon Sim <gsim@apache.org>2009-06-05 17:39:07 +0000
commit6efddffd3c04fc16d2e63ccfa9db6c6ad0798825 (patch)
tree7b9e3b3b7e02b058af5919649cc0831bee99605a /cpp/src/qpid/broker/Queue.cpp
parentdb28bbe4b54cef5457e5349f85a154393db70a8d (diff)
downloadqpid-python-6efddffd3c04fc16d2e63ccfa9db6c6ad0798825.tar.gz
Further fix to new cluster member state transfer to fix a case where unacked messages on ring policy queue cause inconsistencies in queue state between nodes.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@782075 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Queue.cpp')
-rw-r--r--cpp/src/qpid/broker/Queue.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index bbdbf19e92..ffe743bac1 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -202,7 +202,7 @@ void Queue::process(boost::intrusive_ptr<Message>& msg){
}
void Queue::requeue(const QueuedMessage& msg){
- if (policy.get() && !policy->isEnqueued(msg)) return;
+ if (!isEnqueued(msg)) return;
QueueListeners::NotificationSet copy;
{
@@ -691,7 +691,7 @@ bool Queue::dequeue(TransactionContext* ctxt, const QueuedMessage& msg)
{
{
Mutex::ScopedLock locker(messageLock);
- if (policy.get() && !policy->isEnqueued(msg)) return false;
+ if (!isEnqueued(msg)) return false;
if (!ctxt) {
dequeued(msg);
}
@@ -1019,3 +1019,8 @@ void Queue::enqueued(const QueuedMessage& m)
QPID_LOG(warning, "Queue informed of enqueued message that has no payload");
}
}
+
+bool Queue::isEnqueued(const QueuedMessage& msg)
+{
+ return policy.get() && policy->isEnqueued(msg);
+}