diff --git a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java index 36e08d9c74..18c6b05f17 100644 --- a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java +++ b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java @@ -443,8 +443,10 @@ public class AMQPSessionCallback implements SessionCallback { final Receiver receiver) { try { if (address == null) { - receiver.flow(credits); - connection.flush(); + synchronized (connection.getLock()) { + receiver.flow(credits); + connection.flush(); + } return; } final PagingStore store = manager.getServer().getPagingManager().getPageStore(new SimpleString(address));