svn commit: r16643 - trunk/src/argouml-app/src/org/argouml: application util/logging
Tom Morris <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: tfmorris
Date: 2009-01-17 20:16:53-0800
New Revision: 16643
Added:
trunk/src/argouml-app/src/org/argouml/util/logging/AwtExceptionHandler.java (contents, props changed)
Modified:
trunk/src/argouml-app/src/org/argouml/application/Main.java
Log:
RESOLVED - issue 5637: Swing / AWT event thread exceptions should be logged
http://argouml.tigris.org/issues/show_bug.cgi?id=5637
Modified: trunk/src/argouml-app/src/org/argouml/application/Main.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/application/Main.java?view=diff&pathrev=16643&r1=16642&r2=16643
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/application/Main.java (original)
+++ trunk/src/argouml-app/src/org/argouml/application/Main.java 2009-01-17 20:16:53-0800
@@ -1,5 +1,5 @@
// $Id$
-// Copyright (c) 1996-2008 The Regents of the University of California. All
+// Copyright (c) 1996-2009 The Regents of the University of California. All
// Rights Reserved. Permission to use, copy, modify, and distribute this
// software and its documentation without fee, and without a written
// agreement is hereby granted, provided that the above copyright notice
@@ -87,6 +87,7 @@
import org.argouml.uml.ui.InitUmlUI;
import org.argouml.util.ArgoFrame;
import org.argouml.util.JavaRuntimeUtility;
+import org.argouml.util.logging.AwtExceptionHandler;
import org.argouml.util.logging.SimpleTimer;
import org.tigris.gef.util.Util;
@@ -148,6 +149,9 @@
st.mark("arguments");
parseCommandLine(args);
+ // Register our last chance exception handler
+ AwtExceptionHandler.registerExceptionHandler();
+
// Get the splash screen up as early as possible
st.mark("create splash");
SplashScreen splash = null;
Added: trunk/src/argouml-app/src/org/argouml/util/logging/AwtExceptionHandler.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/util/logging/AwtExceptionHandler.java?view=markup&pathrev=16643
==============================================================================
--- (empty file)
+++ trunk/src/argouml-app/src/org/argouml/util/logging/AwtExceptionHandler.java 2009-01-17 20:16:53-0800
@@ -0,0 +1,57 @@
+// $Id$
+// Copyright (c) 2009 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies. This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason. IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+package org.argouml.util.logging;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Last chance exception handler for AWT thread to make sure things get logged.
+ */
+public class AwtExceptionHandler {
+
+ private static final Logger LOG =
+ Logger.getLogger(AwtExceptionHandler.class);
+
+ /**
+ * DO NOT CHANGE THIS METHOD SIGNATURE.
+ * @param t the uncaught exception
+ */
+ public void handle(Throwable t) {
+ try {
+ LOG.error("Last chance error handler in AWT thread caught", t);
+ } catch (Throwable t2) {
+ // Ignore any nested exceptions. We don't want infinite loop.
+ }
+ }
+
+ /**
+ * Register our exception handler with AWT.
+ */
+ public static void registerExceptionHandler() {
+ System.setProperty("sun.awt.exception.handler",
+ AwtExceptionHandler.class.getName());
+ }
+}
+
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=1032008
To unsubscribe from this discussion, e-mail: [[email protected]].