From 9db56ba8a8b4f0f2faaa7f6f6083167a67ea955b Mon Sep 17 00:00:00 2001 From: Andrew Donald Kennedy Date: Mon, 26 Jul 2010 13:56:52 +0000 Subject: QPID-2586: Give Client 0-10 close semantics not detach Added a sessionRequestTimeout handler that sets expiry and responds with a sessionTimeout, and makes sessionTimeout set expiry appropriately also. On attach uses the expiry provided, rather than forcing a value of 0. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@979283 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/qpid/transport/Session.java | 4 +--- .../main/java/org/apache/qpid/transport/SessionDelegate.java | 10 +++++++--- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'qpid/java/common/src/main') diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java index f361012c79..7121a76e38 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java @@ -237,9 +237,7 @@ public class Session extends SessionInvoker { initReceiver(); sessionAttach(name.getBytes()); - // XXX: when the broker and client support full session - // recovery we should use expiry as the requested timeout - sessionRequestTimeout(0); + sessionRequestTimeout(expiry); } void resume() diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java index 05f3947654..41be22f4e5 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java @@ -57,6 +57,12 @@ public class SessionDelegate log.warn("UNHANDLED: [%s] %s", ssn, method); } + @Override public void sessionRequestTimeout(Session ssn, SessionRequestTimeout t) + { + ssn.setExpiry(t.getTimeout()); + ssn.sessionTimeout(t.getTimeout()); + } + @Override public void sessionAttached(Session ssn, SessionAttached atc) { ssn.setState(Session.State.OPEN); @@ -64,9 +70,7 @@ public class SessionDelegate @Override public void sessionTimeout(Session ssn, SessionTimeout t) { - // XXX: we ignore this right now, we should uncomment this - // when full session resume is supported: - // ssn.setExpiry(t.getTimeout()); + ssn.setExpiry(t.getTimeout()); } @Override public void sessionCompleted(Session ssn, SessionCompleted cmp) -- cgit v1.2.1