Author: hadrian
Date: Mon Feb  6 21:59:55 2012
New Revision: 1241204

URL: http://svn.apache.org/viewvc?rev=1241204&view=rev
Log:
CAMEL-4976. Properly remove all endpoints matching a given pattern

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
    
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1241204&r1=1241203&r2=1241204&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 Mon Feb  6 21:59:55 2012
@@ -393,13 +393,15 @@ public class DefaultCamelContext extends
             for (Map.Entry<EndpointKey, Endpoint> entry : 
endpoints.entrySet()) {
                 oldEndpoint = entry.getValue();
                 if (EndpointHelper.matchEndpoint(oldEndpoint.getEndpointUri(), 
uri)) {
-                    answer.add(oldEndpoint);
-                    stopServices(oldEndpoint);
+                    try {
+                        stopServices(oldEndpoint);
+                        answer.add(oldEndpoint);
+                        endpoints.remove(entry.getKey());
+                    } catch (Exception e) {
+                        log.warn("Endpoint '{}' matching pattern '{}' should 
be removed, but could not be stopped. Remove ignored...");
+                    }
                 }
             }
-            for (Endpoint endpoint : answer) {
-                endpoints.remove(getEndpointKey(endpoint.getEndpointUri()));
-            }
         }
 
         // notify lifecycle its being removed

Modified: 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java?rev=1241204&r1=1241203&r2=1241204&view=diff
==============================================================================
--- 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
 (original)
+++ 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
 Mon Feb  6 21:59:55 2012
@@ -44,10 +44,7 @@ public class RemoveEndpointsTest extends
 
         Collection<Endpoint> list = context.removeEndpoints("*");
         assertEquals(7, list.size()); // all have been removed
-
-        // TODO: [CAMEL-4976] the following fails, but it should pass
-        // assertEquals(0, context.getEndpoints().size());
-        // assertNull(context.hasEndpoint("jms://topic:bar"));
+        assertEquals(0, context.getEndpoints().size());
     }
 
     @Override


Reply via email to