summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2011-07-30 15:00:54 +0000
committerRobert Gemmell <robbie@apache.org>2011-07-30 15:00:54 +0000
commit48bdbb81d6f9f45c5061ddaa58c3877de0b21a68 (patch)
tree0e6b26911169ec9a4dddb3a1a3d07dcf3ecf7020 /qpid/java
parent66b5fa7d08b1ac88e41a2bb00ead51338c22b96e (diff)
downloadqpid-python-48bdbb81d6f9f45c5061ddaa58c3877de0b21a68.tar.gz
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<keith.wall@gmail.com> git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1152484 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java12
1 files changed, 8 insertions, 4 deletions
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 4b8b13fc7f..52d39978f3 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
@@ -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());
+ }
}