You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2016/06/09 16:10:13 UTC

activemq git commit: https://issues.apache.org/jira/browse/AMQ-6275

Repository: activemq
Updated Branches:
  refs/heads/master bce5e5e9c -> 98d200083


https://issues.apache.org/jira/browse/AMQ-6275

Avoid unnecessary connection state lookup leading to lock ordering
issues.

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

Branch: refs/heads/master
Commit: 98d20008333af380ae05d91036d123501115ab8c
Parents: bce5e5e
Author: Timothy Bish <ta...@gmail.com>
Authored: Thu Jun 9 12:09:42 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Thu Jun 9 12:10:09 2016 -0400

----------------------------------------------------------------------
 .../org/apache/activemq/broker/TransportConnection.java     | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/98d20008/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
index 40b7d26..fde46c4 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
@@ -696,7 +696,7 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
             broker.addConsumer(cs.getContext(), info);
             try {
                 ss.addConsumer(info);
-                addConsumerBrokerExchange(info.getConsumerId());
+                addConsumerBrokerExchange(cs, info.getConsumerId());
             } catch (IllegalStateException e) {
                 broker.removeConsumer(cs.getContext(), info);
             }
@@ -1538,15 +1538,14 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
         return result;
     }
 
-    private ConsumerBrokerExchange addConsumerBrokerExchange(ConsumerId id) {
+    private ConsumerBrokerExchange addConsumerBrokerExchange(TransportConnectionState connectionState, ConsumerId id) {
         ConsumerBrokerExchange result = consumerExchanges.get(id);
         if (result == null) {
             synchronized (consumerExchanges) {
                 result = new ConsumerBrokerExchange();
-                TransportConnectionState state = lookupConnectionState(id);
-                context = state.getContext();
+                context = connectionState.getContext();
                 result.setConnectionContext(context);
-                SessionState ss = state.getSessionState(id.getParentId());
+                SessionState ss = connectionState.getSessionState(id.getParentId());
                 if (ss != null) {
                     ConsumerState cs = ss.getConsumerState(id);
                     if (cs != null) {