summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession.java21
1 files changed, 14 insertions, 7 deletions
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 c253b8b641..d2ef457c94 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
@@ -494,15 +494,22 @@ public abstract class AMQSession extends Closeable implements Session, QueueSess
public void checkNotClosed() throws JMSException
{
- // if the Connection has closed then we should throw any exception that has occured that we were not waiting for
- AMQStateManager manager = _connection.getProtocolHandler().getStateManager();
- if (isClosed() && manager.getCurrentState().equals(AMQState.CONNECTION_CLOSED) && manager.getLastException() != null)
+ try
{
- JMSException jmse = new IllegalStateException("Object " + toString() + " has been closed");
- jmse.setLinkedException(manager.getLastException());
- throw jmse;
+ super.checkNotClosed();
+ }
+ catch (IllegalStateException ise)
+ {
+ // if the Connection has closed then we should throw any exception that has occured that we were not waiting for
+ AMQStateManager manager = _connection.getProtocolHandler().getStateManager();
+
+ if (manager.getCurrentState().equals(AMQState.CONNECTION_CLOSED) && manager.getLastException() != null)
+ {
+ ise.setLinkedException(manager.getLastException());
+ }
+
+ throw ise;
}
- super.checkNotClosed();
}
public BytesMessage createBytesMessage() throws JMSException