summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2009-03-24 20:59:03 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2009-03-24 20:59:03 +0000
commit98721260a1a8c2ef6c1c46e2f1e2f597e5955c57 (patch)
treeb2c9063844bac40b976e2ed9beb0a6248b84c7af /qpid/java
parent140c1854621ce0320f86a63c01112b42d025e21e (diff)
downloadqpid-python-98721260a1a8c2ef6c1c46e2f1e2f597e5955c57.tar.gz
This is a fix for QPID-1773
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@758017 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java15
1 files changed, 14 insertions, 1 deletions
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 361db42498..3dca4fc44e 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
@@ -559,7 +559,7 @@ public class Session extends SessionInvoker
if (isFull(next))
{
Waiter w = new Waiter(commands, timeout);
- while (w.hasTime() && isFull(next))
+ while (w.hasTime() && isFull(next) && state != CLOSED)
{
if (state == OPEN || state == RESUMING)
{
@@ -585,6 +585,19 @@ public class Session extends SessionInvoker
}
}
+ if (state == CLOSED)
+ {
+ ExecutionException exc = getException();
+ if (exc != null)
+ {
+ throw new SessionException(exc);
+ }
+ else
+ {
+ throw new SessionClosedException();
+ }
+ }
+
if (isFull(next))
{
throw new SessionException("timed out waiting for completion");