summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2010-09-12 12:46:11 +0000
committerRobert Godfrey <rgodfrey@apache.org>2010-09-12 12:46:11 +0000
commitf18aee9ca723fe5e5820123999b7f76f30f18acd (patch)
tree565a7ccd0bb5f7adf6535cfdb26b12f91fce5e83 /qpid/java/broker/src
parentcd7dc2d33f55f3d384e4d60e31a1b79a7d11431a (diff)
downloadqpid-python-f18aee9ca723fe5e5820123999b7f76f30f18acd.tar.gz
QPID-2855 : Broker Transport should not block on awaiting session close confirmation
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@996303 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java6
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java17
2 files changed, 19 insertions, 4 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
index 42ccee3b3f..7393b17243 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
@@ -336,6 +336,12 @@ public class ServerSession extends Session implements PrincipalHolder, SessionCo
}
+ @Override
+ protected void awaitClose()
+ {
+ // Broker shouldn't block awaiting close - thus do override this method to do nothing
+ }
+
public void acknowledge(final Subscription_0_10 sub, final QueueEntry entry)
{
_transaction.dequeue(entry.getQueue(), entry.getMessage(),
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
index 73eebec7bc..b4bb6eb0b4 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
@@ -101,11 +101,14 @@ public class ServerSessionDelegate extends SessionDelegate
public void command(Session session, Method method)
{
SecurityManager.setThreadPrincipal(session.getConnection().getAuthorizationID());
-
- super.command(session, method);
- if (method.isSync())
+
+ if(!session.isClosing())
{
- session.flushProcessed();
+ super.command(session, method);
+ if (method.isSync())
+ {
+ session.flushProcessed();
+ }
}
}
@@ -1189,6 +1192,12 @@ public class ServerSessionDelegate extends SessionDelegate
((ServerSession)session).onClose();
}
+ @Override
+ public void detached(Session session)
+ {
+ closed(session);
+ }
+
public Collection<Subscription_0_10> getSubscriptions(Session session)
{
return ((ServerSession)session).getSubscriptions();