Author: davsclaus
Date: Sat Nov  5 11:23:34 2011
New Revision: 1197933

URL: http://svn.apache.org/viewvc?rev=1197933&view=rev
Log:
CAMEL-4619: Fixed wrong timeout value used in logs during graceful shutdown 
when using a non default timeout value

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java?rev=1197933&r1=1197932&r2=1197933&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
 Sat Nov  5 11:23:34 2011
@@ -124,7 +124,7 @@ public class DefaultShutdownStrategy ext
         }
 
         // use another thread to perform the shutdowns so we can support 
timeout
-        Future future = getExecutorService().submit(new ShutdownTask(context, 
routesOrdered, suspendOnly, abortAfterTimeout));
+        Future future = getExecutorService().submit(new ShutdownTask(context, 
routesOrdered, timeout, timeUnit, suspendOnly, abortAfterTimeout));
         try {
             if (timeout > 0) {
                 future.get(timeout, timeUnit);
@@ -239,7 +239,7 @@ public class DefaultShutdownStrategy ext
      *
      * @param consumer the consumer to shutdown
      */
-    protected void shutdownNow(Consumer consumer) {
+    protected static void shutdownNow(Consumer consumer) {
         LOG.trace("Shutting down: {}", consumer);
 
         // allow us to do custom work before delegating to service helper
@@ -259,7 +259,7 @@ public class DefaultShutdownStrategy ext
      *
      * @param consumer the consumer to suspend
      */
-    protected void suspendNow(Consumer consumer) {
+    protected static void suspendNow(Consumer consumer) {
         LOG.trace("Suspending: {}", consumer);
 
         // allow us to do custom work before delegating to service helper
@@ -300,7 +300,7 @@ public class DefaultShutdownStrategy ext
         }
     }
 
-    class ShutdownDeferredConsumer {
+    static class ShutdownDeferredConsumer {
         private final Route route;
         private final Consumer consumer;
 
@@ -321,18 +321,23 @@ public class DefaultShutdownStrategy ext
     /**
      * Shutdown task which shutdown all the routes in a graceful manner.
      */
-    class ShutdownTask implements Runnable {
+    static class ShutdownTask implements Runnable {
 
         private final CamelContext context;
         private final List<RouteStartupOrder> routes;
         private final boolean suspendOnly;
         private final boolean abortAfterTimeout;
+        private final long timeout;
+        private final TimeUnit timeUnit;
 
-        public ShutdownTask(CamelContext context, List<RouteStartupOrder> 
routes, boolean suspendOnly, boolean abortAfterTimeout) {
+        public ShutdownTask(CamelContext context, List<RouteStartupOrder> 
routes, long timeout, TimeUnit timeUnit,
+                            boolean suspendOnly, boolean abortAfterTimeout) {
             this.context = context;
             this.routes = routes;
             this.suspendOnly = suspendOnly;
             this.abortAfterTimeout = abortAfterTimeout;
+            this.timeout = timeout;
+            this.timeUnit = timeUnit;
         }
 
         public void run() {
@@ -424,7 +429,7 @@ public class DefaultShutdownStrategy ext
                 if (size > 0) {
                     try {
                         LOG.info("Waiting as there are still " + size + " 
inflight and pending exchanges to complete, timeout in "
-                                 + (TimeUnit.SECONDS.convert(getTimeout(), 
getTimeUnit()) - (loopCount++ * loopDelaySeconds)) + " seconds.");
+                                 + (TimeUnit.SECONDS.convert(timeout, 
timeUnit) - (loopCount++ * loopDelaySeconds)) + " seconds.");
                         Thread.sleep(loopDelaySeconds * 1000);
                     } catch (InterruptedException e) {
                         if (abortAfterTimeout) {


Reply via email to