summaryrefslogtreecommitdiff
path: root/java/broker/src/main/java/org
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2012-02-17 11:57:58 +0000
committerRobert Gemmell <robbie@apache.org>2012-02-17 11:57:58 +0000
commit26c959968393a2c87441872f7ca8ee4e7b3f6787 (patch)
treef92bfbd51a88d181a748988e839c02be00d4067f /java/broker/src/main/java/org
parent9571094314a2896b1b53cc93b5543656e0e3cd2f (diff)
downloadqpid-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.java10
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);
+ }
}
}