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())
         {