diff options
Diffstat (limited to 'cpp/src/qpid/client')
| -rw-r--r-- | cpp/src/qpid/client/SessionCore.cpp | 4 |
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); |
