diff options
author | Robert Gemmell <robbie@apache.org> | 2012-02-17 11:57:58 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2012-02-17 11:57:58 +0000 |
commit | 26c959968393a2c87441872f7ca8ee4e7b3f6787 (patch) | |
tree | f92bfbd51a88d181a748988e839c02be00d4067f /java/broker/src/main/java/org | |
parent | 9571094314a2896b1b53cc93b5543656e0e3cd2f (diff) | |
download | qpid-python-26c959968393a2c87441872f7ca8ee4e7b3f6787.tar.gz |
QPID-3850: add switch into default uncaught exception handler to prevent the broker from exiting if necessary
Applied patch from Oleksandr Rudyy <orudyy@gmail.com> and myself.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1245418 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker/src/main/java/org')
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/Main.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/Main.java b/java/broker/src/main/java/org/apache/qpid/server/Main.java index ee7426a31f..5fcd8a7b52 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/Main.java +++ b/java/broker/src/main/java/org/apache/qpid/server/Main.java @@ -302,6 +302,7 @@ public class Main { public void uncaughtException(final Thread t, final Throwable e) { + boolean continueOnError = Boolean.getBoolean("qpid.broker.exceptionHandler.continue"); try { System.err.println("########################################################################"); @@ -311,17 +312,20 @@ public class Main System.err.print(" in Thread "); System.err.println(t.getName()); System.err.println("#"); - System.err.println("# Exiting"); + System.err.println(continueOnError ? "# Forced to continue by JVM setting 'qpid.broker.exceptionHandler.continue'" : "# Exiting"); System.err.println("#"); System.err.println("########################################################################"); e.printStackTrace(System.err); Logger logger = Logger.getLogger("org.apache.qpid.server.Main"); - logger.error("Uncaught exception, shutting down.", e); + logger.error("Uncaught exception, " + (continueOnError ? "continuing." : "shutting down."), e); } finally { - Runtime.getRuntime().halt(1); + if (!continueOnError) + { + Runtime.getRuntime().halt(1); + } } } |