summaryrefslogtreecommitdiff
path: root/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
diff options
context:
space:
mode:
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.java22
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);
+ }
}
}
}