From 7c21f856b84db3c6539b8a6c01efdcdbb8dd414f Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Sat, 11 Apr 2009 01:38:21 +0000 Subject: QPID-1779 : Fixed the close problem so that we only send Consumer/Session closes when we have a connnection available to send the frame. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@764140 13f79535-47bb-0310-9956-ffa450edef68 --- java/client/src/main/java/org/apache/qpid/client/AMQSession.java | 7 +++++-- .../src/main/java/org/apache/qpid/client/BasicMessageConsumer.java | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'java/client') diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java index 2782505191..ea131dd565 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java @@ -633,6 +633,7 @@ public abstract class AMQSession extends Closeable implements Messa if (!_closed.getAndSet(true)) { + _closing.set(true); if (_logger.isDebugEnabled()) { StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); @@ -563,7 +564,10 @@ public abstract class BasicMessageConsumer extends Closeable implements Messa { try { - if (!_connection.isClosing()) + // If the session is open or we are in the process + // of closing the session then send a cance + // no point otherwise as the connection will be gone + if (!_session.isClosed() || _session.isClosing()) { sendCancel(); } -- cgit v1.2.1