CAMEL-7666: Fixed potential java.util.ConcurrentModificationException using addService.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/66acc68e Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/66acc68e Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/66acc68e Branch: refs/heads/camel-2.13.x Commit: 66acc68eb74f15b5e37f51ecc19d3111fad8a205 Parents: 4b3dbc6 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Aug 7 10:24:52 2014 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Aug 7 16:47:51 2014 +0200 ---------------------------------------------------------------------- .../src/main/java/org/apache/camel/impl/DefaultCamelContext.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/66acc68e/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java index eb8d87e..9f39968 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.TreeMap; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -167,7 +168,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon private LanguageResolver languageResolver = new DefaultLanguageResolver(); private final Map<String, Language> languages = new HashMap<String, Language>(); private Registry registry; - private List<LifecycleStrategy> lifecycleStrategies = new ArrayList<LifecycleStrategy>(); + private List<LifecycleStrategy> lifecycleStrategies = new CopyOnWriteArrayList<LifecycleStrategy>(); private ManagementStrategy managementStrategy; private ManagementMBeanAssembler managementMBeanAssembler; private final List<RouteDefinition> routeDefinitions = new ArrayList<RouteDefinition>();