summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/Decoder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/cluster/Decoder.cpp')
-rw-r--r--cpp/src/qpid/cluster/Decoder.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/cpp/src/qpid/cluster/Decoder.cpp b/cpp/src/qpid/cluster/Decoder.cpp
index 4de586d89f..b337ef43f4 100644
--- a/cpp/src/qpid/cluster/Decoder.cpp
+++ b/cpp/src/qpid/cluster/Decoder.cpp
@@ -47,12 +47,13 @@ void Decoder::decode(const EventHeader& eh, const char* data) {
// We must give 1 unit read credit per event.
// This event does not complete any frames so
// send an empty frame with the read credit.
- process(EventFrame(EventHeader(), framing::AMQFrame(), 1));
+ process(EventFrame(eh, framing::AMQFrame(), 1));
}
}
void Decoder::process(const EventFrame& ef) {
- if (ef.frame.getMethod() && ef.frame.getMethod()->isA<framing::ClusterConnectionDeliverCloseBody>())
+ //need to check that this is not the empty frame mentioned above
+ if (ef.frame.getBody() && ef.frame.getMethod() && ef.frame.getMethod()->isA<framing::ClusterConnectionDeliverCloseBody>())
map.erase(ef.connectionId);
callback(ef);
}