Repository: activemq-artemis
Updated Branches:
  refs/heads/master 92290ba00 -> cdc974e71


ARTEMIS-908: Ensure that connection lock is held when flushing


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/5f6a390b
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/5f6a390b
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/5f6a390b

Branch: refs/heads/master
Commit: 5f6a390b6098dca1cfda09af4c0af096dfe736c0
Parents: 92290ba
Author: Ulf Lilleengen <[email protected]>
Authored: Wed Feb 15 14:09:27 2017 +0100
Committer: Ulf Lilleengen <[email protected]>
Committed: Wed Feb 15 14:09:27 2017 +0100

----------------------------------------------------------------------
 .../artemis/protocol/amqp/broker/AMQPSessionCallback.java      | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/5f6a390b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java
----------------------------------------------------------------------
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 36e08d9..18c6b05 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));

Reply via email to