summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorMarnie McCormack <marnie@apache.org>2010-07-05 19:40:57 +0000
committerMarnie McCormack <marnie@apache.org>2010-07-05 19:40:57 +0000
commit0f7f0aa39aabb79d49f0fb7294fa233d3f8d5981 (patch)
tree158616b744d77299a1d1ec50e7b5ff2f4d999280 /java
parent60855f58f87bd01d90859f32b40025f1a255c08a (diff)
downloadqpid-python-0f7f0aa39aabb79d49f0fb7294fa233d3f8d5981.tar.gz
QPID-2694 Commit to trunk for Andrew Kennedy patch for session leak on close
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@960667 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseOkMethodHandler.java6
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java4
2 files changed, 6 insertions, 4 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseOkMethodHandler.java b/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseOkMethodHandler.java
index 9a9a0b4e63..72936779c2 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseOkMethodHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseOkMethodHandler.java
@@ -21,10 +21,10 @@
package org.apache.qpid.client.handler;
import org.apache.qpid.AMQException;
-import org.apache.qpid.framing.ChannelCloseOkBody;
import org.apache.qpid.client.protocol.AMQProtocolSession;
import org.apache.qpid.client.state.StateAwareMethodListener;
-
+import org.apache.qpid.framing.ChannelCloseOkBody;
+import org.apache.qpid.protocol.AMQConstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,6 +44,6 @@ public class ChannelCloseOkMethodHandler implements StateAwareMethodListener<Cha
{
_logger.info("Received channel-close-ok for channel-id " + channelId);
- // todo this should do the local closure
+ session.channelClosed(channelId, AMQConstant.REPLY_SUCCESS, "Channel closed successfully");
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java b/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java
index 909ac8aae8..ec98783a8a 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java
@@ -38,6 +38,7 @@ public class ClientMethodDispatcherImpl implements MethodDispatcher
private static final BasicDeliverMethodHandler _basicDeliverMethodHandler = BasicDeliverMethodHandler.getInstance();
private static final BasicReturnMethodHandler _basicReturnMethodHandler = BasicReturnMethodHandler.getInstance();
private static final ChannelCloseMethodHandler _channelCloseMethodHandler = ChannelCloseMethodHandler.getInstance();
+ private static final ChannelCloseOkMethodHandler _channelCloseOkMethodHandler = ChannelCloseOkMethodHandler.getInstance();
private static final ChannelFlowOkMethodHandler _channelFlowOkMethodHandler = ChannelFlowOkMethodHandler.getInstance();
private static final ChannelFlowMethodHandler _channelFlowMethodHandler = ChannelFlowMethodHandler.getInstance();
private static final ConnectionCloseMethodHandler _connectionCloseMethodHandler = ConnectionCloseMethodHandler.getInstance();
@@ -165,7 +166,8 @@ public class ClientMethodDispatcherImpl implements MethodDispatcher
public boolean dispatchChannelCloseOk(ChannelCloseOkBody body, int channelId) throws AMQException
{
- return false;
+ _channelCloseOkMethodHandler.methodReceived(_session, body, channelId);
+ return true;
}
public boolean dispatchChannelFlow(ChannelFlowBody body, int channelId) throws AMQException