Repository: camel
Updated Branches:
  refs/heads/master 690c92c85 -> 444ceb8f6


CAMEL-11349: Optimize EventNotifer to reuse Event instance


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

Branch: refs/heads/master
Commit: faf98c814d68d85793c159c99604f2735432a44a
Parents: 690c92c
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sat May 27 10:23:21 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sat May 27 10:23:21 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/util/EventHelper.java | 450 ++++++++++++-------
 1 file changed, 300 insertions(+), 150 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/faf98c81/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/EventHelper.java 
b/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
index 98455f3..c0f6fee 100644
--- a/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
@@ -49,23 +49,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextStartingEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextStartingEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -77,23 +83,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextStartedEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextStartedEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -105,23 +117,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextStartupFailureEvent(context, cause);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextStartupFailureEvent(context, 
cause);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -133,23 +151,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextStoppingEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextStoppingEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -161,23 +185,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextStoppedEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextStoppedEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -189,23 +219,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextStopFailureEvent(context, cause);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextStopFailureEvent(context, 
cause);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -217,23 +253,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreServiceEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createServiceStopFailureEvent(context, 
service, cause);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createServiceStopFailureEvent(context, 
service, cause);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -245,23 +287,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreServiceEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createServiceStartupFailureEvent(context, service, cause);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createServiceStartupFailureEvent(context, 
service, cause);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -273,23 +321,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreRouteEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createRouteStartedEvent(route);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createRouteStartedEvent(route);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -301,23 +355,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreRouteEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createRouteStoppedEvent(route);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createRouteStoppedEvent(route);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -329,23 +389,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreRouteEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createRouteAddedEvent(route);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createRouteAddedEvent(route);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -357,23 +423,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreRouteEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createRouteRemovedEvent(route);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createRouteRemovedEvent(route);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -390,23 +462,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeCreatedEvent()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createExchangeCreatedEvent(exchange);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeCreatedEvent(exchange);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -423,23 +501,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeCompletedEvent()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createExchangeCompletedEvent(exchange);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeCompletedEvent(exchange);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -456,23 +540,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeFailedEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createExchangeFailedEvent(exchange);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeFailedEvent(exchange);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -490,23 +580,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeFailedEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createExchangeFailureHandlingEvent(exchange, failureHandler, 
deadLetterChannel, deadLetterUri);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeFailureHandlingEvent(exchange, 
failureHandler, deadLetterChannel, deadLetterUri);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -524,23 +620,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeFailedEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createExchangeFailureHandledEvent(exchange, failureHandler, 
deadLetterChannel, deadLetterUri);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeFailureHandledEvent(exchange, 
failureHandler, deadLetterChannel, deadLetterUri);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -557,23 +659,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeFailedEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createExchangeRedeliveryEvent(exchange, attempt);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeRedeliveryEvent(exchange, 
attempt);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -590,23 +698,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeSentEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createExchangeSendingEvent(exchange, 
endpoint);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeSendingEvent(exchange, endpoint);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -623,23 +737,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreExchangeEvents() || 
notifier.isIgnoreExchangeSentEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = factory.createExchangeSentEvent(exchange, 
endpoint, timeTaken);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createExchangeSentEvent(exchange, endpoint, 
timeTaken);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -651,23 +771,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextSuspendingEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextSuspendingEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -679,23 +805,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextSuspendedEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextSuspendedEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -707,23 +839,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextResumingEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextResumingEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -735,23 +873,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextResumedEvent(context);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextResumedEvent(context);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }
@@ -763,23 +907,29 @@ public final class EventHelper {
             return;
         }
 
+        EventFactory factory = management.getEventFactory();
+        if (factory == null) {
+            return;
+        }
+
         List<EventNotifier> notifiers = management.getEventNotifiers();
         if (notifiers == null || notifiers.isEmpty()) {
             return;
         }
 
+        EventObject event = null;
         for (EventNotifier notifier : notifiers) {
             if (notifier.isIgnoreCamelContextEvents()) {
                 continue;
             }
 
-            EventFactory factory = management.getEventFactory();
-            if (factory == null) {
-                return;
-            }
-            EventObject event = 
factory.createCamelContextResumeFailureEvent(context, cause);
             if (event == null) {
-                return;
+                // only create event once
+                event = factory.createCamelContextResumeFailureEvent(context, 
cause);
+                if (event == null) {
+                    // factory could not create event so exit
+                    return;
+                }
             }
             doNotifyEvent(notifier, event);
         }

Reply via email to