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/ada4295f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ada4295f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ada4295f

Branch: refs/heads/camel-2.12.x
Commit: ada4295fa07140121747e197a5a7f728fcd4985c
Parents: 8228cfe
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:44 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/ada4295f/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 dd8797d..a673382 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;
@@ -60,11 +60,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