Author: davsclaus
Date: Mon Nov 30 12:41:36 2009
New Revision: 885400

URL: http://svn.apache.org/viewvc?rev=885400&view=rev
Log:
Using try catch for event notifier in UoW done to ensure synchronizations 
always will be invoked if event notifier failed, such as if using a custom 
notifier and it fails.

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

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java?rev=885400&r1=885399&r2=885400&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java
 Mon Nov 30 12:41:36 2009
@@ -110,10 +110,15 @@
         boolean failed = exchange.isFailed();
 
         // fire event to signal the exchange is done
-        if (failed) {
-            EventHelper.notifyExchangeFailed(exchange.getContext(), exchange);
-        } else {
-            EventHelper.notifyExchangeDone(exchange.getContext(), exchange);
+        try {
+            if (failed) {
+                EventHelper.notifyExchangeFailed(exchange.getContext(), 
exchange);
+            } else {
+                EventHelper.notifyExchangeDone(exchange.getContext(), 
exchange);
+            }
+        } catch (Exception e) {
+            // must catch exceptions to ensure synchronizations is also invoked
+            LOG.warn("Exception occurred during event notification. This 
exception will be ignored.", e);
         }
 
         if (synchronizations != null && !synchronizations.isEmpty()) {
@@ -127,7 +132,7 @@
                     }
                 } catch (Exception e) {
                     // must catch exceptions to ensure all synchronizations 
have a chance to run
-                    LOG.warn("Exception occurred during onCompletion. This 
exception will be ignored: ", e);
+                    LOG.warn("Exception occurred during onCompletion. This 
exception will be ignored.", e);
                 }
             }
         }
@@ -136,7 +141,6 @@
         if (exchange.getContext() != null) {
             exchange.getContext().getInflightRepository().remove(exchange);
         }
-
     }
 
     public String getId() {


Reply via email to