From 238d56ccc06988fa1ad766116a5ad326dc2a980b Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Sat, 30 Jul 2011 15:00:54 +0000 Subject: QPID-3339: set the security Subject during the closed() invocation to prevent the spurious ACL denies causing occasional test failures from ExternalACLTest under the Java 0.10 profiles Applied patch from Keith Wall git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1152484 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/server/transport/ServerSessionDelegate.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'java') diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 4b8b13fc7f..52d39978f3 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java @@ -106,8 +106,7 @@ public class ServerSessionDelegate extends SessionDelegate @Override public void command(Session session, Method method) { - final ServerConnection scon = (ServerConnection) session.getConnection(); - SecurityManager.setThreadSubject(scon.getAuthorizedSubject()); + setThreadSubject(session); if(!session.isClosing()) { @@ -125,8 +124,6 @@ public class ServerSessionDelegate extends SessionDelegate ((ServerSession)session).accept(method.getTransfers()); } - - @Override public void messageReject(Session session, MessageReject method) { @@ -1225,6 +1222,8 @@ public class ServerSessionDelegate extends SessionDelegate @Override public void closed(Session session) { + setThreadSubject(session); + for(Subscription_0_10 sub : getSubscriptions(session)) { ((ServerSession)session).unregister(sub); @@ -1243,4 +1242,9 @@ public class ServerSessionDelegate extends SessionDelegate return ((ServerSession)session).getSubscriptions(); } + private void setThreadSubject(Session session) + { + final ServerConnection scon = (ServerConnection) session.getConnection(); + SecurityManager.setThreadSubject(scon.getAuthorizedSubject()); + } } -- cgit v1.2.1