summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-03-24 14:07:25 +0000
committerGordon Sim <gsim@apache.org>2009-03-24 14:07:25 +0000
commit140c1854621ce0320f86a63c01112b42d025e21e (patch)
treef6b26bb9a0e9358494e62c610f57796e721ef553 /qpid/cpp/src
parent26dd3000824ced31dc81c5bed3a524a3af78b943 (diff)
downloadqpid-python-140c1854621ce0320f86a63c01112b42d025e21e.tar.gz
QPID-1771: fix as applied to branch as r757807.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@757808 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/cluster/Decoder.cpp5
-rw-r--r--qpid/cpp/src/qpid/cluster/EventFrame.cpp4
2 files changed, 6 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/cluster/Decoder.cpp b/qpid/cpp/src/qpid/cluster/Decoder.cpp
index 4de586d89f..b337ef43f4 100644
--- a/qpid/cpp/src/qpid/cluster/Decoder.cpp
+++ b/qpid/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);
}
diff --git a/qpid/cpp/src/qpid/cluster/EventFrame.cpp b/qpid/cpp/src/qpid/cluster/EventFrame.cpp
index 8259b6da6e..9350c801f5 100644
--- a/qpid/cpp/src/qpid/cluster/EventFrame.cpp
+++ b/qpid/cpp/src/qpid/cluster/EventFrame.cpp
@@ -33,7 +33,9 @@ EventFrame::EventFrame(const EventHeader& e, const framing::AMQFrame& f, int rc)
}
std::ostream& operator<<(std::ostream& o, const EventFrame& e) {
- return o << e.frame << " " << e.type << " " << e.connectionId;
+ if (e.frame.getBody()) o << e.frame;
+ else o << "null-frame";
+ o << " " << e.type << " " << e.connectionId;
if (e.readCredit) o << " read-credit=" << e.readCredit;
return o;
}