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 2012/11/12 20:39:14 UTC

svn commit: r1408415 - in /activemq/trunk: activemq-broker/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java activemq-core/src/test/java/org/apache/activemq/bugs/AMQ4160Test.java

Author: tabish
Date: Mon Nov 12 19:39:14 2012
New Revision: 1408415

URL: http://svn.apache.org/viewvc?rev=1408415&view=rev
Log:
fixes for: https://issues.apache.org/jira/browse/AMQ-4160

Fixed the code to properly handle the active events adds and remove. 
Disable one of the test cases because the fixed code now invalidates that test case. 

Modified:
    activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ4160Test.java

Modified: activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java?rev=1408415&r1=1408414&r2=1408415&view=diff
==============================================================================
--- activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java (original)
+++ activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java Mon Nov 12 19:39:14 2012
@@ -53,7 +53,7 @@ public class DiscoveryNetworkConnector e
 
     private DiscoveryAgent discoveryAgent;
     private Map<String, String> parameters;
-    private ConcurrentMap<URI, DiscoveryEvent> activeEvents = new ConcurrentHashMap<URI, DiscoveryEvent>();
+    private final ConcurrentMap<URI, DiscoveryEvent> activeEvents = new ConcurrentHashMap<URI, DiscoveryEvent>();
     public DiscoveryNetworkConnector() {
     }
 
@@ -72,6 +72,7 @@ public class DiscoveryNetworkConnector e
         }
     }
 
+    @Override
     public void onServiceAdd(DiscoveryEvent event) {
         // Ignore events once we start stopping.
         if (serviceSupport.isStopped() || serviceSupport.isStopping()) {
@@ -103,7 +104,10 @@ public class DiscoveryNetworkConnector e
 
             // Should we try to connect to that URI?
             if (activeEvents.putIfAbsent(uri, event) != null) {
-                LOG.debug("Discovery agent generated a duplicate onServiceAdd event for: "+uri );
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("Discovery agent generated a duplicate onServiceAdd event for: " + uri);
+                }
+                return;
             }
 
             URI connectUri = uri;
@@ -129,7 +133,7 @@ public class DiscoveryNetworkConnector e
                     if (LOG.isDebugEnabled()) {
                         LOG.debug("Connection failure exception: " + e, e);
                     }
-                    activeEvents.remove(url);
+                    activeEvents.remove(uri);
                     return;
                 }
                 try {
@@ -140,7 +144,7 @@ public class DiscoveryNetworkConnector e
                     if (LOG.isDebugEnabled()) {
                         LOG.debug("Connection failure exception: " + e, e);
                     }
-                    activeEvents.remove(url);
+                    activeEvents.remove(uri);
                     return;
                 }
             } finally {
@@ -171,6 +175,7 @@ public class DiscoveryNetworkConnector e
         }
     }
 
+    @Override
     public void onServiceRemove(DiscoveryEvent event) {
         String url = event.getServiceName();
         if (url != null) {
@@ -183,7 +188,7 @@ public class DiscoveryNetworkConnector e
             }
 
             // Only remove bridge if this is the active discovery event for the URL.
-            if (activeEvents.remove(url, event)) {
+            if (activeEvents.remove(uri, event)) {
                 synchronized (bridges) {
                     bridges.remove(uri);
                 }
@@ -202,6 +207,7 @@ public class DiscoveryNetworkConnector e
         }
     }
 
+    @Override
     protected void handleStart() throws Exception {
         if (discoveryAgent == null) {
             throw new IllegalStateException("You must configure the 'discoveryAgent' property");
@@ -210,6 +216,7 @@ public class DiscoveryNetworkConnector e
         super.handleStart();
     }
 
+    @Override
     protected void handleStop(ServiceStopper stopper) throws Exception {
         for (Iterator<NetworkBridge> i = bridges.values().iterator(); i.hasNext();) {
             NetworkBridge bridge = i.next();
@@ -236,6 +243,7 @@ public class DiscoveryNetworkConnector e
                 super(brokerService, connectorName);
             }
 
+            @Override
             public void bridgeFailed() {
                 if (!serviceSupport.isStopped()) {
                     try {

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ4160Test.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ4160Test.java?rev=1408415&r1=1408414&r2=1408415&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ4160Test.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ4160Test.java Mon Nov 12 19:39:14 2012
@@ -57,7 +57,7 @@ public class AMQ4160Test extends JmsMult
      * {@link DiscoveryNetworkConnector#activeBridges()} that represents the
      * successful first bridge creation attempt.
      */
-    public void testLostActiveBridge() throws Exception {
+    public void x_testLostActiveBridge() throws Exception {
         // Start two brokers with a bridge from broker1 to broker2.
         BrokerService broker1 = createBroker(new URI(
                 "broker:(vm://broker1)/broker1?persistent=false"));