QPID-7600: [Java Broker] Ensure IO thread calling AMQChannel#receivedComplete runs with the session's principal
diff --git a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
index 26a0249..3c44ea9 100644
--- a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
+++ b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
@@ -352,7 +352,16 @@
public void receivedComplete()
{
- sync();
+ AccessController.doPrivileged(new PrivilegedAction<Void>()
+ {
+ @Override
+ public Void run()
+ {
+ sync();
+ return null;
+ }
+ }, getAccessControllerContext());
+
}
private void incrementOutstandingTxnsIfNecessary()
@@ -1825,7 +1834,7 @@
_unfinishedCommandsQueue.add(new AsyncCommand(future, action));
}
- public void sync()
+ private void sync()
{
if(_logger.isDebugEnabled())
{