From 9f9e1ab19027dbcbb014771c9662129308262fce Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 9 Mar 2017 15:56:54 +1100 Subject: [PATCH] Issue #1374 Stop on Failure --- .../util/component/AbstractLifeCycle.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/component/AbstractLifeCycle.java b/jetty-util/src/main/java/org/eclipse/jetty/util/component/AbstractLifeCycle.java index 950ccb07ab0..402a58cbcbc 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/component/AbstractLifeCycle.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/component/AbstractLifeCycle.java @@ -234,4 +234,23 @@ public abstract class AbstractLifeCycle implements LifeCycle @Override public void lifeCycleStopped(LifeCycle event) {} @Override public void lifeCycleStopping(LifeCycle event) {} } + + /** + * A LifeCycle Listener that will call stop if any failures are notified. + */ + public static final LifeCycle.Listener STOP_ON_FAILURE = new AbstractLifeCycleListener() + { + @Override + public void lifeCycleFailure(LifeCycle lifecycle, Throwable cause) + { + try + { + lifecycle.stop(); + } + catch(Exception e) + { + cause.addSuppressed(e); + } + } + }; }