Author: cctrieloff
Date: Mon Dec 29 18:32:22 2008
New Revision: 730031

URL: http://svn.apache.org/viewvc?rev=730031&view=rev
Log:
- browse correction, to update replacement message on browse
- correct stats for lvq messages


Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
    qpid/trunk/qpid/cpp/src/tests/QueueTest.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=730031&r1=730030&r2=730031&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Mon Dec 29 18:32:22 2008
@@ -308,6 +308,10 @@
                 c->position = msg.position;
                 m = msg;
                 if (!lastValueQueueNoBrowse) clearLVQIndex(msg);
+                if (lastValueQueue) {
+                    boost::intrusive_ptr<Message> replacement = 
msg.payload->getReplacementMessage(this);
+                    if (replacement.get()) m.payload = replacement;
+                }
                 return true;
             } else {
                 //browser hasn't got enough credit for the message
@@ -511,6 +515,10 @@
                 lvq[key] = msg;
             }else {
                 i->second->setReplacementMessage(msg,this);
+                if (mgmtObject != 0) {
+                    mgmtObject->inc_msgTotalDequeues();
+                    mgmtObject->inc_byteTotalDequeues(msg->contentSize());
+                }
             }           
         }else {
             messages.push_back(qm);

Modified: qpid/trunk/qpid/cpp/src/tests/QueueTest.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/QueueTest.cpp?rev=730031&r1=730030&r2=730031&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/QueueTest.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/QueueTest.cpp Mon Dec 29 18:32:22 2008
@@ -417,6 +417,11 @@
     
     queue->deliver(msg6);
     BOOST_CHECK_EQUAL(queue->getMessageCount(), 3u);
+
+    intrusive_ptr<Message> received;
+    received = queue->get().payload;
+    BOOST_CHECK_EQUAL(msg4.get(), received.get());
+
 }
 
 QPID_AUTO_TEST_CASE(testLVQMultiQueue){


Reply via email to