Author: davsclaus
Date: Fri Sep 28 09:24:30 2012
New Revision: 1391374

URL: http://svn.apache.org/viewvc?rev=1391374&view=rev
Log:
CAMEL-5561: ExecutorServiceManagement should shutdown after services

Modified:
    camel/branches/camel-2.10.x/   (props changed)
    
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java

Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
  Merged /camel/trunk:r1391373

Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1391374&r1=1391373&r2=1391374&view=diff
==============================================================================
--- 
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 (original)
+++ 
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 Fri Sep 28 09:24:30 2012
@@ -889,7 +889,10 @@ public class DefaultCamelContext extends
     }
 
     public void addService(Object object) throws Exception {
+        doAddService(object, true);
+    }
 
+    private void doAddService(Object object, boolean closeOnShutdown) throws 
Exception {
         // inject CamelContext
         if (object instanceof CamelContextAware) {
             CamelContextAware aware = (CamelContextAware) object;
@@ -917,7 +920,7 @@ public class DefaultCamelContext extends
             // do not add endpoints as they have their own list
             if (singleton && !(service instanceof Endpoint)) {
                 // only add to list of services to close if its not already 
there
-                if (!hasService(service)) {
+                if (closeOnShutdown && !hasService(service)) {
                     servicesToClose.add(service);
                 }
             }
@@ -1539,7 +1542,8 @@ public class DefaultCamelContext extends
         // and we needed to create endpoints up-front as it may be accessed 
before this context is started
         endpoints = new EndpointRegistry(this, endpoints);
         addService(endpoints);
-        addService(executorServiceManager);
+        // special for executorServiceManager as want to stop it manually
+        doAddService(executorServiceManager, false);
         addService(producerServicePool);
         addService(inflightRepository);
         addService(shutdownStrategy);
@@ -1638,7 +1642,8 @@ public class DefaultCamelContext extends
             shutdownServices(notifier);
         }
 
-        // shutdown management as the last one
+        // shutdown executor service and management as the last one
+        shutdownServices(executorServiceManager);
         shutdownServices(managementStrategy);
         shutdownServices(lifecycleStrategies);
         // do not clear lifecycleStrategies as we can start Camel again and 
get the route back as before


Reply via email to