Author: robbie
Date: Fri Feb 17 11:57:58 2012
New Revision: 1245418

URL: http://svn.apache.org/viewvc?rev=1245418&view=rev
Log:
QPID-3850: add switch into default uncaught exception handler to prevent the 
broker from exiting if necessary

Applied patch from Oleksandr Rudyy <oru...@gmail.com> and myself.

Modified:
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java?rev=1245418&r1=1245417&r2=1245418&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java 
(original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java 
Fri Feb 17 11:57:58 2012
@@ -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);
+                            }
                         }
 
                     }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to