summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/MessageBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/MessageBuilder.cpp')
-rw-r--r--cpp/src/qpid/broker/MessageBuilder.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/MessageBuilder.cpp b/cpp/src/qpid/broker/MessageBuilder.cpp
index 1e988021b2..bc8c10d4b1 100644
--- a/cpp/src/qpid/broker/MessageBuilder.cpp
+++ b/cpp/src/qpid/broker/MessageBuilder.cpp
@@ -37,6 +37,8 @@ namespace
MessageBuilder::MessageBuilder(MessageStore* const _store, uint64_t _stagingThreshold) :
state(DORMANT), store(_store), stagingThreshold(_stagingThreshold), staging(false) {}
+static const std::string QPID_MANAGEMENT("qpid.management");
+
void MessageBuilder::handle(AMQFrame& frame)
{
uint8_t type = frame.getBody()->type();
@@ -75,7 +77,8 @@ void MessageBuilder::handle(AMQFrame& frame)
if (state == CONTENT
&& stagingThreshold
&& message->getFrames().getContentSize() >= stagingThreshold
- && !NullMessageStore::isNullStore(store))
+ && !NullMessageStore::isNullStore(store)
+ && message->getExchangeName() != QPID_MANAGEMENT /* don't stage mgnt messages */)
{
message->releaseContent(store);
staging = true;