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 | af090d830a3298bc5fa9438902d7a8010a89026c (patch) | |
tree | 63ac90d6753892d77625a8aad08d9a20ed14581c | |
parent | 02253ffc452d7a61a94d8c69a2b6d4f87b946073 (diff) | |
download | qpid-python-af090d830a3298bc5fa9438902d7a8010a89026c.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@1245418 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java index ee7426a31f..5fcd8a7b52 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java +++ b/qpid/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); + } } } |