You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2013/01/29 13:50:16 UTC

svn commit: r1439870 - /activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java

Author: gtully
Date: Tue Jan 29 12:50:15 2013
New Revision: 1439870

URL: http://svn.apache.org/viewvc?rev=1439870&view=rev
Log:
https://issues.apache.org/jira/browse/AMQ-4276 - remove sub from conduit lis immediatly or weget duplicate remove avents as shown by org.apache.activemq.usecases.TwoBrokerQueueSendReceiveTest

Modified:
    activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java

Modified: activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java?rev=1439870&r1=1439869&r2=1439870&view=diff
==============================================================================
--- activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java (original)
+++ activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java Tue Jan 29 12:50:15 2013
@@ -804,6 +804,10 @@ public abstract class DemandForwardingBr
                         + " for remote " + sub.getRemoteInfo().getConsumerId());
             }
 
+            // ensure not available for conduit subs pending removal
+            subscriptionMapByLocalId.remove(sub.getLocalInfo().getConsumerId());
+            subscriptionMapByRemoteId.remove(sub.getRemoteInfo().getConsumerId());
+
             // continue removal in separate thread to free up this thread for outstanding responses
             // serialise with removeDestination operations so that removeSubs are serialised with removeDestinations
             // such that all removeSub advisories are generated
@@ -815,9 +819,6 @@ public abstract class DemandForwardingBr
                         localBroker.oneway(sub.getLocalInfo().createRemoveCommand());
                     } catch (IOException e) {
                         LOG.warn("failed to deliver remove command for local subscription, for remote " + sub.getRemoteInfo().getConsumerId(), e);
-                    } finally {
-                        subscriptionMapByLocalId.remove(sub.getLocalInfo().getConsumerId());
-                        subscriptionMapByRemoteId.remove(sub.getRemoteInfo().getConsumerId());
                     }
                 }
             });