summaryrefslogtreecommitdiff
path: root/qpid/java/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/common/src')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
index dc32569ee8..19f00378b1 100644
--- a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
@@ -467,11 +467,12 @@ public class Connection extends ConnectionInvoker
{
synchronized (lock)
{
+ List <Binary> transactedSessions = new ArrayList();
for (Session ssn : sessions.values())
{
if (ssn.isTransacted())
- {
- removeSession(ssn);
+ {
+ transactedSessions.add(ssn.getName());
ssn.setState(Session.State.CLOSED);
}
else
@@ -481,6 +482,11 @@ public class Connection extends ConnectionInvoker
ssn.resume();
}
}
+
+ for (Binary ssn_name : transactedSessions)
+ {
+ sessions.remove(ssn_name);
+ }
setState(OPEN);
}
}