Author: hadrian Date: Mon Feb 6 23:26:48 2012 New Revision: 1241260 URL: http://svn.apache.org/viewvc?rev=1241260&view=rev Log: CAMEL-4976. Properly remove all endpoints matching a given pattern
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java camel/branches/camel-2.9.x/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1241260&r1=1241259&r2=1241260&view=diff ============================================================================== --- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original) +++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Mon Feb 6 23:26:48 2012 @@ -378,13 +378,15 @@ public class DefaultCamelContext extends for (Map.Entry entry : endpoints.entrySet()) { oldEndpoint = (Endpoint)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/branches/camel-2.9.x/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java?rev=1241260&r1=1241259&r2=1241260&view=diff ============================================================================== --- camel/branches/camel-2.9.x/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java (original) +++ camel/branches/camel-2.9.x/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java Mon Feb 6 23:26:48 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