CAMEL-6941: Fixed concurrency issue when shutdown on default executor service 
manager.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/69ccc76b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/69ccc76b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/69ccc76b

Branch: refs/heads/camel-2.11.x
Commit: 69ccc76bf412dd4118b2f03b3972878b6eb0f6c6
Parents: 31fddb7
Author: Claus Ibsen <davscl...@apache.org>
Authored: Fri Nov 8 15:50:52 2013 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Nov 8 15:52:56 2013 +0100

----------------------------------------------------------------------
 .../org/apache/camel/impl/DefaultExecutorServiceManager.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/69ccc76b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
index d8bd891..08d6bc2 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
@@ -16,13 +16,13 @@
  */
 package org.apache.camel.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadFactory;
@@ -59,11 +59,11 @@ public class DefaultExecutorServiceManager extends 
ServiceSupport implements Exe
 
     private final CamelContext camelContext;
     private ThreadPoolFactory threadPoolFactory = new 
DefaultThreadPoolFactory();
-    private final List<ExecutorService> executorServices = new 
ArrayList<ExecutorService>();
+    private final List<ExecutorService> executorServices = new 
CopyOnWriteArrayList<ExecutorService>();
     private String threadNamePattern;
     private long shutdownAwaitTermination = 10000;
     private String defaultThreadPoolProfileId = "defaultThreadPoolProfile";
-    private final Map<String, ThreadPoolProfile> threadPoolProfiles = new 
HashMap<String, ThreadPoolProfile>();
+    private final Map<String, ThreadPoolProfile> threadPoolProfiles = new 
ConcurrentHashMap<String, ThreadPoolProfile>();
     private ThreadPoolProfile defaultProfile;
 
     public DefaultExecutorServiceManager(CamelContext camelContext) {

Reply via email to