summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/client')
-rw-r--r--cpp/src/qpid/client/SessionCore.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/cpp/src/qpid/client/SessionCore.cpp b/cpp/src/qpid/client/SessionCore.cpp
index 30df574716..f7f0f52dba 100644
--- a/cpp/src/qpid/client/SessionCore.cpp
+++ b/cpp/src/qpid/client/SessionCore.cpp
@@ -52,6 +52,7 @@ inline void SessionCore::invariant() const {
break;
case RESUMING:
assert(session);
+ assert(session->getState() == SessionState::RESUMING);
assert(code==REPLY_SUCCESS);
assert(connection);
assert(channel.get());
@@ -142,6 +143,7 @@ void SessionCore::doSuspend(int code, const std::string& text) {
if (state != CLOSED) {
invariant();
detach(code, text);
+ session->suspend();
setState(SUSPENDED);
}
}
@@ -200,7 +202,7 @@ void SessionCore::resume(shared_ptr<ConnectionImpl> c) {
if (state==OPEN)
doSuspend(REPLY_SUCCESS, OK);
check(state==SUSPENDED, COMMAND_INVALID, QPID_MSG("Session cannot be resumed."));
- SequenceNumber sendAck=session->sendingAck();
+ SequenceNumber sendAck=session->resuming();
attaching(c);
proxy.resume(getId());
waitFor(OPEN);