summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/Message.cpp')
-rw-r--r--cpp/src/qpid/broker/Message.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/Message.cpp b/cpp/src/qpid/broker/Message.cpp
index 5d572283ce..78d6cd3891 100644
--- a/cpp/src/qpid/broker/Message.cpp
+++ b/cpp/src/qpid/broker/Message.cpp
@@ -36,7 +36,7 @@ using std::string;
TransferAdapter Message::TRANSFER;
PublishAdapter Message::PUBLISH;
-Message::Message(const SequenceNumber& id) : frames(id), persistenceId(0), redelivered(false), publisher(0), store(0), adapter(0) {}
+Message::Message(const SequenceNumber& id) : frames(id), persistenceId(0), redelivered(false), publisher(0), adapter(0) {}
std::string Message::getRoutingKey() const
{
@@ -131,12 +131,15 @@ void Message::decodeContent(framing::Buffer& buffer)
void Message::releaseContent(MessageStore* _store)
{
- store = _store;
+ if (!store){
+ store = _store;
+ }
if (!getPersistenceId()) {
store->stage(*this);
}
//remove any content frames from the frameset
frames.remove(TypeFilter(CONTENT_BODY));
+ setContentReleased();
}
void Message::sendContent(framing::FrameHandler& out, uint16_t maxFrameSize) const