diff options
Diffstat (limited to 'java/broker-core/src/main/java/org/apache/qpid/server/Broker.java')
-rw-r--r-- | java/broker-core/src/main/java/org/apache/qpid/server/Broker.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java b/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java index 0b925d130c..7780f060bb 100644 --- a/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java +++ b/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java @@ -58,6 +58,17 @@ public class Broker implements BrokerShutdownProvider private EventLogger _eventLogger; private boolean _configuringOwnLogging = false; private final TaskExecutor _taskExecutor = new TaskExecutorImpl(); + private final boolean _exitJVMOnShutdownWithNonZeroExitCode; + + public Broker() + { + this(false); + } + + public Broker(boolean exitJVMOnShutdownWithNonZeroExitCode) + { + this._exitJVMOnShutdownWithNonZeroExitCode = exitJVMOnShutdownWithNonZeroExitCode; + } protected static class InitException extends RuntimeException { @@ -71,6 +82,12 @@ public class Broker implements BrokerShutdownProvider public void shutdown() { + shutdown(0); + } + + @Override + public void shutdown(int exitStatusCode) + { try { removeShutdownHook(); @@ -92,6 +109,11 @@ public class Broker implements BrokerShutdownProvider { LogManager.shutdown(); } + + if (_exitJVMOnShutdownWithNonZeroExitCode && exitStatusCode != 0) + { + System.exit(exitStatusCode); + } } } } |