diff options
| author | Carl C. Trieloff <cctrieloff@apache.org> | 2009-07-10 19:42:16 +0000 |
|---|---|---|
| committer | Carl C. Trieloff <cctrieloff@apache.org> | 2009-07-10 19:42:16 +0000 |
| commit | 8ade86a93793137b337502faefefcaf0c4a203eb (patch) | |
| tree | db9a22765d6b0639a131618c981d6cd428b8dcbf /cpp/src/qpid/broker/MessageBuilder.cpp | |
| parent | 82d0880a9a9a65029d35422ad2dff675b867bb6c (diff) | |
| download | qpid-python-8ade86a93793137b337502faefefcaf0c4a203eb.tar.gz | |
Correct the case where for very low ( bytes) staging threshhold management
could get disabled. Fix prevents the staging of management messages + test
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793091 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/MessageBuilder.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/MessageBuilder.cpp | 5 |
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; |
