diff options
Diffstat (limited to 'cpp/src/qpid/broker/Queue.cpp')
-rw-r--r-- | cpp/src/qpid/broker/Queue.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp index 418722f40b..de30c45acd 100644 --- a/cpp/src/qpid/broker/Queue.cpp +++ b/cpp/src/qpid/broker/Queue.cpp @@ -308,6 +308,10 @@ bool Queue::browseNextMessage(QueuedMessage& m, Consumer::shared_ptr c) 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 @@ void Queue::push(boost::intrusive_ptr<Message>& msg){ 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); |