beforeStop on Main should do internal stop logic in independet method, as end 
users most likely wont call super when they override the method to do their 
custom logic.


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

Branch: refs/heads/master
Commit: 85e00fed904f745495bd8ef2e2da9258d593a049
Parents: 6eec501
Author: Claus Ibsen <davscl...@apache.org>
Authored: Fri Nov 8 15:18:11 2013 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Nov 8 15:18:11 2013 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/camel/main/MainSupport.java | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/85e00fed/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/main/MainSupport.java 
b/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
index e040f9f..2a3498f 100644
--- a/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
@@ -149,6 +149,7 @@ public abstract class MainSupport extends ServiceSupport {
             try {
                 afterStart();
                 waitUntilCompleted();
+                internalBeforeStop();
                 beforeStop();
                 stop();
             } catch (Exception e) {
@@ -178,9 +179,17 @@ public abstract class MainSupport extends ServiceSupport {
      * Callback to run custom logic before CamelContext is being stopped.
      */
     protected void beforeStop() throws Exception {
-        if (camelTemplate != null) {
-            ServiceHelper.stopService(camelTemplate);
-            camelTemplate = null;
+        // noop
+    }
+
+    private void internalBeforeStop() {
+        try {
+            if (camelTemplate != null) {
+                ServiceHelper.stopService(camelTemplate);
+                camelTemplate = null;
+            }
+        } catch (Exception e) {
+            LOG.debug("Error stopping camelTemplate due " + e.getMessage() + 
". This exception is ignored.", e);
         }
     }
 

Reply via email to