You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2008/06/06 00:01:33 UTC

svn commit: r663755 - /incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp

Author: tross
Date: Thu Jun  5 15:01:32 2008
New Revision: 663755

URL: http://svn.apache.org/viewvc?rev=663755&view=rev
Log:
Dequeue persistent messages from store in queue purge

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=663755&r1=663754&r2=663755&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Thu Jun  5 15:01:32 2008
@@ -387,7 +387,15 @@
 uint32_t Queue::purge(){
     Mutex::ScopedLock locker(messageLock);
     int count = messages.size();
-    while(!messages.empty()) pop();
+    while(!messages.empty()) {
+        QueuedMessage& msg = messages.front();
+        if (store && msg.payload->isPersistent()) {
+            boost::intrusive_ptr<PersistableMessage> pmsg =
+                boost::static_pointer_cast<PersistableMessage>(msg.payload);
+            store->dequeue(0, pmsg, *this);
+        }
+        pop();
+    }
     return count;
 }