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/920cfd75 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/920cfd75 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/920cfd75 Branch: refs/heads/camel-2.12.x Commit: 920cfd75b9d832edaa03c1b71af83ddca13d1e80 Parents: b668bca 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:48:01 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/920cfd75/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 77a7cce..4e41234 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; @@ -165,7 +166,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>();