Author: davsclaus
Date: Tue Mar 16 07:12:09 2010
New Revision: 923594
URL: http://svn.apache.org/viewvc?rev=923594&view=rev
Log:
CAMEL-1588: More robust shutdown by catching Throwable instead of Exception.
Polished messages being logged.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultEventFactory.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStartupFailureEvent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStopFailureEvent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStartupFailureEvent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStopFailureEvent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
Tue Mar 16 07:12:09 2010
@@ -240,7 +240,7 @@ public class DefaultCamelContext extends
}
}
} catch (Exception e) {
- throw new RuntimeCamelException("Could not auto create
component: " + name, e);
+ throw new RuntimeCamelException("Cannot auto create
component: " + name, e);
}
}
return component;
@@ -287,7 +287,7 @@ public class DefaultCamelContext extends
}
} catch (Exception e) {
throw new RuntimeCamelException("Factory failed to create
the " + componentName
- + " component", e);
+ + " component.", e);
}
}
return component;
@@ -968,7 +968,7 @@ public class DefaultCamelContext extends
firstStartDone = true;
if (doNotStart) {
- LOG.info("Cannot start Apache Camel " + getVersion() + "
(CamelContext:" + getName() + ") as it has been configured to not auto start");
+ LOG.info("Cannot start Apache Camel " + getVersion() + "
(CamelContext: " + getName() + ") as it has been configured to not auto start");
return;
}
@@ -1080,12 +1080,11 @@ public class DefaultCamelContext extends
for (int i = 0; i < getRoutes().size(); i++) {
LOG.debug("Route " + i + ": " + getRoutes().get(i));
}
- LOG.debug("... Routes started");
}
LOG.info("Started " + getRoutes().size() + " routes");
- LOG.info("Apache Camel " + getVersion() + " (CamelContext:" +
getName() + ") started");
+ LOG.info("Apache Camel " + getVersion() + " (CamelContext: " +
getName() + ") started");
EventHelper.notifyCamelContextStarted(this);
}
@@ -1093,7 +1092,7 @@ public class DefaultCamelContext extends
// -----------------------------------------------------------------------
protected synchronized void doStart() throws Exception {
- LOG.info("Apache Camel " + getVersion() + " (CamelContext:" +
getName() + ") is starting");
+ LOG.info("Apache Camel " + getVersion() + " (CamelContext: " +
getName() + ") is starting");
try {
doStartCamel();
@@ -1106,12 +1105,10 @@ public class DefaultCamelContext extends
}
private void doStartCamel() throws Exception {
- startServices(producerServicePool);
-
if (isStreamCaching()) {
// only add a new stream cache if not already configured
if (StreamCaching.getStreamCaching(this) == null) {
- LOG.info("StreamCaching is enabled on CamelContext" +
getName());
+ LOG.info("StreamCaching is enabled on CamelContext: " +
getName());
addInterceptStrategy(new StreamCaching());
}
}
@@ -1124,7 +1121,7 @@ public class DefaultCamelContext extends
if (isHandleFault()) {
// only add a new handle fault if not already configured
if (HandleFault.getHandleFault(this) == null) {
- LOG.info("HandleFault is enabled on CamelContext" + getName());
+ LOG.info("HandleFault is enabled on CamelContext: " +
getName());
addInterceptStrategy(new HandleFault());
}
}
@@ -1133,7 +1130,7 @@ public class DefaultCamelContext extends
// only add a new delayer if not already configured
if (Delayer.getDelayer(this) == null) {
long millis = getDelayer();
- LOG.info("Delayer is enabled with: " + millis + " ms. on
CamelContext" + getName());
+ LOG.info("Delayer is enabled with: " + millis + " ms. on
CamelContext: " + getName());
addInterceptStrategy(new Delayer(millis));
}
}
@@ -1141,17 +1138,9 @@ public class DefaultCamelContext extends
// start management strategy before lifecycles are started
getManagementStrategy().start();
- Iterator<LifecycleStrategy> it = lifecycleStrategies.iterator();
- while (it.hasNext()) {
- LifecycleStrategy strategy = it.next();
- try {
- strategy.onContextStart(this);
- } catch (Exception e) {
- // not all containers allow access to its MBeanServer (such as
OC4j)
- // so here we remove the troublesome strategy to be able to
continue
- LOG.warn("Cannot start lifecycle strategy: " + strategy + ".
This strategy will be removed. Cause " + e.getMessage(), e);
- it.remove();
- }
+ // start lifecycle strategies
+ for (LifecycleStrategy strategy : lifecycleStrategies) {
+ strategy.onContextStart(this);
}
// must let some bootstrap service be started before we can notify the
starting event
@@ -1159,6 +1148,7 @@ public class DefaultCamelContext extends
forceLazyInitialization();
addService(executorServiceStrategy);
+ addService(producerServicePool);
addService(inflightRepository);
addService(shutdownStrategy);
@@ -1192,61 +1182,46 @@ public class DefaultCamelContext extends
shutdownServices(components.values());
components.clear();
- // special shutdown of a shared producer service pool as it should
only be shutdown by camel context
- if (producerServicePool instanceof SharedProducerServicePool) {
- ((SharedProducerServicePool) producerServicePool).shutdown(this);
- } else {
- shutdownServices(producerServicePool);
- }
-
- shutdownServices(servicesToClose);
- servicesToClose.clear();
-
try {
for (LifecycleStrategy strategy : lifecycleStrategies) {
strategy.onContextStop(this);
}
- } catch (Exception e) {
- LOG.warn("Cannot stop lifecycle strategies: " + e.getMessage());
+ } catch (Throwable e) {
+ LOG.warn("Error occurred while stopping lifecycle strategies. This
exception will be ignored.", e);
}
+ // shutdown services as late as possible
+ shutdownServices(servicesToClose);
+ servicesToClose.clear();
+
// must notify that we are stopped before stopping the management
strategy
EventHelper.notifyCamelContextStopped(this);
// shutdown management as the last one
shutdownServices(managementStrategy);
- LOG.info("Apache Camel " + getVersion() + " (CamelContext:" +
getName() + ") is shutdown");
+ LOG.info("Apache Camel " + getVersion() + " (CamelContext: " +
getName() + ") is shutdown");
}
- private void stopServices(Object service) throws Exception {
- // allow us to do custom work before delegating to service helper
- try {
- ServiceHelper.stopService(service);
- } catch (Exception e) {
- LOG.warn("Error occurred while stopping service: " + service + ".
This exception will be ignored.");
- // fire event
- EventHelper.notifyServiceStopFailure(this, service, e);
- }
- }
+ private void shutdownServices(Object service) {
+ // do not rethrow exception as we want to keep shutting down in case
of problems
- private void shutdownServices(Object service) throws Exception {
// allow us to do custom work before delegating to service helper
try {
ServiceHelper.stopAndShutdownService(service);
- } catch (Exception e) {
- LOG.warn("Error occurred while shutting down service: " + service
+ ". This exception will be ignored.");
+ } catch (Throwable e) {
+ LOG.warn("Error occurred while shutting down service: " + service
+ ". This exception will be ignored.", e);
// fire event
EventHelper.notifyServiceStopFailure(this, service, e);
}
}
- private void shutdownServices(Collection<?> services) throws Exception {
+ private void shutdownServices(Collection<?> services) {
// reverse stopping by default
shutdownServices(services, true);
}
- private void shutdownServices(Collection<?> services, boolean reverse)
throws Exception {
+ private void shutdownServices(Collection<?> services, boolean reverse) {
Collection<Object> list = CastUtils.cast(services);
if (reverse) {
ArrayList<Object> reverseList = new ArrayList<Object>(services);
@@ -1263,6 +1238,18 @@ public class DefaultCamelContext extends
ServiceHelper.startService(service);
}
+ private void stopServices(Object service) throws Exception {
+ // allow us to do custom work before delegating to service helper
+ try {
+ ServiceHelper.stopService(service);
+ } catch (Exception e) {
+ // fire event
+ EventHelper.notifyServiceStopFailure(this, service, e);
+ // rethrow to signal error with stopping
+ throw e;
+ }
+ }
+
protected void startRouteDefinitions(Collection<RouteDefinition> list)
throws Exception {
if (list != null) {
for (RouteDefinition route : list) {
@@ -1575,7 +1562,7 @@ public class DefaultCamelContext extends
answer = new DefaultManagementStrategy();
} else {
try {
- LOG.info("JMX enabled. Using
DefaultManagedLifecycleStrategy.");
+ LOG.info("JMX enabled. Using ManagedManagementStrategy.");
answer = new ManagedManagementStrategy(new
DefaultManagementAgent(this));
// prefer to have it at first strategy
lifecycleStrategies.add(0, new
DefaultManagementLifecycleStrategy(this));
@@ -1587,12 +1574,12 @@ public class DefaultCamelContext extends
+ " (spring-jmx.jar using Spring 2.0.x)."
+ " NoClassDefFoundError: " + e.getMessage());
} catch (Exception e) {
- LOG.warn("Could not create JMX lifecycle strategy, caused by:
" + e.getMessage());
+ LOG.warn("Cannot create JMX lifecycle strategy. Will fallback
to use non JMX and this exception will be ignored.", e);
}
}
if (answer == null) {
- LOG.warn("Cannot use JMX. Fallback to using
DefaultManagementStrategy.");
+ LOG.warn("Cannot use JMX. Fallback to using
DefaultManagementStrategy (non JMX).");
answer = new DefaultManagementStrategy();
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
Tue Mar 16 07:12:09 2010
@@ -101,20 +101,30 @@ public class DefaultExecutorServiceStrat
if (executorService.isShutdown()) {
return;
}
+
if (LOG.isDebugEnabled()) {
- LOG.debug("Shutting down ExecutorService: " + executorService);
+ LOG.debug("Shutdown ExecutorService: " + executorService);
}
executorService.shutdown();
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Shutdown ExecutorService: " + executorService + "
complete.");
+ }
}
public List<Runnable> shutdownNow(ExecutorService executorService) {
if (executorService.isShutdown()) {
return null;
}
+
if (LOG.isDebugEnabled()) {
- LOG.debug("Shutting down now ExecutorService: " + executorService);
+ LOG.debug("ShutdownNow ExecutorService: " + executorService);
}
- return executorService.shutdownNow();
+ List<Runnable> answer = executorService.shutdownNow();
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("ShutdownNow ExecutorService: " + executorService + "
complete.");
+ }
+
+ return answer;
}
/**
@@ -146,7 +156,7 @@ public class DefaultExecutorServiceStrat
// only log if something goes wrong as we want to shutdown them all
try {
shutdownNow(executorService);
- } catch (Exception e) {
+ } catch (Throwable e) {
LOG.warn("Error occurred during shutdown of ExecutorService: "
+ executorService + ". This exception will be
ignored.", e);
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java
Tue Mar 16 07:12:09 2010
@@ -16,10 +16,7 @@
*/
package org.apache.camel.impl;
-import org.apache.camel.CamelContext;
-import org.apache.camel.util.EventHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.camel.ShutdownableService;
/**
* A shared {...@link org.apache.camel.impl.DefaultProducerServicePool} which
is used by
@@ -27,9 +24,7 @@ import org.apache.commons.logging.LogFac
*
* @version $Revision$
*/
-public class SharedProducerServicePool extends DefaultProducerServicePool {
-
- private static final transient Log LOG =
LogFactory.getLog(SharedProducerServicePool.class);
+public class SharedProducerServicePool extends DefaultProducerServicePool
implements ShutdownableService {
public SharedProducerServicePool(int capacity) {
super(capacity);
@@ -41,14 +36,10 @@ public class SharedProducerServicePool e
// only be stopped when CamelContext stops
}
- void shutdown(CamelContext context) throws Exception {
- try {
- super.doStop();
- } catch (Exception e) {
- LOG.warn("Error occurred while stopping service: " + this + ".
This exception will be ignored.");
- // fire event
- EventHelper.notifyServiceStopFailure(context, this, e);
- }
+ @Override
+ protected void doShutdown() throws Exception {
+ // now we are shutting down then stop it, which properly stops the pool
+ super.doStop();
}
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultEventFactory.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultEventFactory.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultEventFactory.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultEventFactory.java
Tue Mar 16 07:12:09 2010
@@ -61,19 +61,19 @@ public class DefaultEventFactory impleme
return new CamelContextStoppedEvent(context);
}
- public EventObject createCamelContextStartupFailureEvent(CamelContext
context, Exception cause) {
+ public EventObject createCamelContextStartupFailureEvent(CamelContext
context, Throwable cause) {
return new CamelContextStartupFailureEvent(context, cause);
}
- public EventObject createCamelContextStopFailureEvent(CamelContext
context, Exception cause) {
+ public EventObject createCamelContextStopFailureEvent(CamelContext
context, Throwable cause) {
return new CamelContextStopFailureEvent(context, cause);
}
- public EventObject createServiceStartupFailureEvent(CamelContext context,
Object service, Exception cause) {
+ public EventObject createServiceStartupFailureEvent(CamelContext context,
Object service, Throwable cause) {
return new ServiceStartupFailureEvent(context, service, cause);
}
- public EventObject createServiceStopFailureEvent(CamelContext context,
Object service, Exception cause) {
+ public EventObject createServiceStopFailureEvent(CamelContext context,
Object service, Throwable cause) {
return new ServiceStopFailureEvent(context, service, cause);
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStartupFailureEvent.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStartupFailureEvent.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStartupFailureEvent.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStartupFailureEvent.java
Tue Mar 16 07:12:09 2010
@@ -27,9 +27,9 @@ public class CamelContextStartupFailureE
private static final long serialVersionUID = -4271899927507894567L;
private CamelContext context;
- private Exception cause;
+ private Throwable cause;
- public CamelContextStartupFailureEvent(CamelContext context, Exception
cause) {
+ public CamelContextStartupFailureEvent(CamelContext context, Throwable
cause) {
super(context);
this.context = context;
this.cause = cause;
@@ -39,7 +39,7 @@ public class CamelContextStartupFailureE
return context;
}
- public Exception getCause() {
+ public Throwable getCause() {
return cause;
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStopFailureEvent.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStopFailureEvent.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStopFailureEvent.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/CamelContextStopFailureEvent.java
Tue Mar 16 07:12:09 2010
@@ -27,9 +27,9 @@ public class CamelContextStopFailureEven
private static final long serialVersionUID = -802046840118188292L;
private CamelContext context;
- private Exception cause;
+ private Throwable cause;
- public CamelContextStopFailureEvent(CamelContext context, Exception cause)
{
+ public CamelContextStopFailureEvent(CamelContext context, Throwable cause)
{
super(context);
this.context = context;
this.cause = cause;
@@ -39,7 +39,7 @@ public class CamelContextStopFailureEven
return context;
}
- public Exception getCause() {
+ public Throwable getCause() {
return cause;
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStartupFailureEvent.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStartupFailureEvent.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStartupFailureEvent.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStartupFailureEvent.java
Tue Mar 16 07:12:09 2010
@@ -28,9 +28,9 @@ public class ServiceStartupFailureEvent
private CamelContext context;
private Object service;
- private Exception cause;
+ private Throwable cause;
- public ServiceStartupFailureEvent(CamelContext context, Object service,
Exception cause) {
+ public ServiceStartupFailureEvent(CamelContext context, Object service,
Throwable cause) {
super(service);
this.context = context;
this.service = service;
@@ -45,7 +45,7 @@ public class ServiceStartupFailureEvent
return service;
}
- public Exception getCause() {
+ public Throwable getCause() {
return cause;
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStopFailureEvent.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStopFailureEvent.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStopFailureEvent.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/event/ServiceStopFailureEvent.java
Tue Mar 16 07:12:09 2010
@@ -28,9 +28,9 @@ public class ServiceStopFailureEvent ext
private CamelContext context;
private Object service;
- private Exception cause;
+ private Throwable cause;
- public ServiceStopFailureEvent(CamelContext context, Object service,
Exception cause) {
+ public ServiceStopFailureEvent(CamelContext context, Object service,
Throwable cause) {
super(service);
this.context = context;
this.service = service;
@@ -45,7 +45,7 @@ public class ServiceStopFailureEvent ext
return service;
}
- public Exception getCause() {
+ public Throwable getCause() {
return cause;
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
Tue Mar 16 07:12:09 2010
@@ -56,7 +56,7 @@ public interface EventFactory {
* @param cause the cause exception
* @return the created event
*/
- EventObject createCamelContextStartupFailureEvent(CamelContext context,
Exception cause);
+ EventObject createCamelContextStartupFailureEvent(CamelContext context,
Throwable cause);
/**
* Creates an {...@link EventObject} for Camel failing to stop cleanly
@@ -65,7 +65,7 @@ public interface EventFactory {
* @param cause the cause exception
* @return the created event
*/
- EventObject createCamelContextStopFailureEvent(CamelContext context,
Exception cause);
+ EventObject createCamelContextStopFailureEvent(CamelContext context,
Throwable cause);
/**
* Creates an {...@link EventObject} for Camel is stopping.
@@ -91,7 +91,7 @@ public interface EventFactory {
* @param cause the cause exception
* @return the created event
*/
- EventObject createServiceStartupFailureEvent(CamelContext context, Object
service, Exception cause);
+ EventObject createServiceStartupFailureEvent(CamelContext context, Object
service, Throwable cause);
/**
* Creates an {...@link EventObject} for a Service failed to stop cleanly
@@ -101,7 +101,7 @@ public interface EventFactory {
* @param cause the cause exception
* @return the created event
*/
- EventObject createServiceStopFailureEvent(CamelContext context, Object
service, Exception cause);
+ EventObject createServiceStopFailureEvent(CamelContext context, Object
service, Throwable cause);
/**
* Creates an {...@link EventObject} for {...@link Route} has been started
successfully.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/EventHelper.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
Tue Mar 16 07:12:09 2010
@@ -88,7 +88,7 @@ public final class EventHelper {
}
}
- public static void notifyCamelContextStartupFailed(CamelContext context,
Exception cause) {
+ public static void notifyCamelContextStartupFailed(CamelContext context,
Throwable cause) {
List<EventNotifier> notifiers =
context.getManagementStrategy().getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
return;
@@ -157,7 +157,7 @@ public final class EventHelper {
}
}
- public static void notifyCamelContextStopFailed(CamelContext context,
Exception cause) {
+ public static void notifyCamelContextStopFailed(CamelContext context,
Throwable cause) {
List<EventNotifier> notifiers =
context.getManagementStrategy().getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
return;
@@ -180,7 +180,7 @@ public final class EventHelper {
}
}
- public static void notifyServiceStopFailure(CamelContext context, Object
service, Exception cause) {
+ public static void notifyServiceStopFailure(CamelContext context, Object
service, Throwable cause) {
List<EventNotifier> notifiers =
context.getManagementStrategy().getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
return;
@@ -203,7 +203,7 @@ public final class EventHelper {
}
}
- public static void notifyServiceStartupFailure(CamelContext context,
Object service, Exception cause) {
+ public static void notifyServiceStartupFailure(CamelContext context,
Object service, Throwable cause) {
List<EventNotifier> notifiers =
context.getManagementStrategy().getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
return;
@@ -410,7 +410,7 @@ public final class EventHelper {
try {
notifier.notify(event);
- } catch (Exception e) {
+ } catch (Throwable e) {
LOG.warn("Error notifying event " + event + ". This exception will
be ignored. ", e);
}
}
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java?rev=923594&r1=923593&r2=923594&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
Tue Mar 16 07:12:09 2010
@@ -50,8 +50,8 @@ public class MultipleLifecycleStrategyTe
context.stop();
- assertEquals(9, dummy1.getEvents().size());
- assertEquals(9, dummy2.getEvents().size());
+ assertEquals(10, dummy1.getEvents().size());
+ assertEquals(10, dummy2.getEvents().size());
assertEquals("onContextStart", dummy1.getEvents().get(0));
assertEquals("onContextStart", dummy2.getEvents().get(0));
@@ -63,14 +63,16 @@ public class MultipleLifecycleStrategyTe
assertEquals("onServiceAdd", dummy2.getEvents().get(3));
assertEquals("onServiceAdd", dummy1.getEvents().get(4));
assertEquals("onServiceAdd", dummy2.getEvents().get(4));
- assertEquals("onComponentAdd", dummy1.getEvents().get(5));
- assertEquals("onComponentAdd", dummy2.getEvents().get(5));
- assertEquals("onEndpointAdd", dummy1.getEvents().get(6));
- assertEquals("onEndpointAdd", dummy2.getEvents().get(6));
- assertEquals("onComponentRemove", dummy1.getEvents().get(7));
- assertEquals("onComponentRemove", dummy2.getEvents().get(7));
- assertEquals("onContextStop", dummy1.getEvents().get(8));
- assertEquals("onContextStop", dummy2.getEvents().get(8));
+ assertEquals("onServiceAdd", dummy1.getEvents().get(5));
+ assertEquals("onServiceAdd", dummy2.getEvents().get(5));
+ assertEquals("onComponentAdd", dummy1.getEvents().get(6));
+ assertEquals("onComponentAdd", dummy2.getEvents().get(6));
+ assertEquals("onEndpointAdd", dummy1.getEvents().get(7));
+ assertEquals("onEndpointAdd", dummy2.getEvents().get(7));
+ assertEquals("onComponentRemove", dummy1.getEvents().get(8));
+ assertEquals("onComponentRemove", dummy2.getEvents().get(8));
+ assertEquals("onContextStop", dummy1.getEvents().get(9));
+ assertEquals("onContextStop", dummy2.getEvents().get(9));
}
}