From bf89d620ace4a20270fee72285f9c4c9bfa6b345 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 14 Mar 2012 11:27:16 -0400 Subject: Launch errors are not being printed to terminal 2012-03-14 Omair Majid Print exceptions to terminal when running in gui mode too. * netx/net/sourceforge/jnlp/AbstractLaunchHandler.java: New file. * netx/net/sourceforge/jnlp/DefaultLaunchHandler.java: Extend AbstractLaunchHandler. (DefaultLaunchHandler): New method. (printMessage): Moved to parent class. * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: Extend AbstractLaunchHandler. (GuiLauchHandler): New method. (launchError): Print the error too. (launchWarning,validationError): Call parent's printMessage. * netx/net/sourceforge/jnlp/LaunchException.java: Use standard java exception chaining. This removes compatibility with pre-java 1.3 class libraries. (LaunchException(JNLPFile,Exception,String,String,String,String)): Pass cause to parent so exceptions are chanined properly. (LaunchException(String,Throwable),LaunchException(Throwable)): Call parent's constructor. (printStackTrace(PrintStream),printStackTrace(PrintWriter),getCause): Removed. Use parent's implementation instead. (getCauses): Removed. * netx/net/sourceforge/jnlp/LaunchHandler.java (validationError): Rename argument to clarify meaing. * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (initialize): Redirect output of all handlers to System.err. * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java (PluginAppletSecurityContext): Likewise. * tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java, * tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java: New file. Contains tests. --- netx/net/sourceforge/jnlp/LaunchException.java | 76 ++------------------------ 1 file changed, 4 insertions(+), 72 deletions(-) (limited to 'netx/net/sourceforge/jnlp/LaunchException.java') diff --git a/netx/net/sourceforge/jnlp/LaunchException.java b/netx/net/sourceforge/jnlp/LaunchException.java index 5257607..6c194ed 100644 --- a/netx/net/sourceforge/jnlp/LaunchException.java +++ b/netx/net/sourceforge/jnlp/LaunchException.java @@ -16,11 +16,6 @@ package net.sourceforge.jnlp; -import java.io.*; -import java.util.*; - -import net.sourceforge.jnlp.util.*; - /** * Thrown when a JNLP application, applet, or installer could not * be created. @@ -30,8 +25,7 @@ import net.sourceforge.jnlp.util.*; */ public class LaunchException extends Exception { - /** the original exception */ - private Throwable cause = null; + private static final long serialVersionUID = 7283827853612357423L; /** the file being launched */ private JNLPFile file; @@ -53,36 +47,27 @@ public class LaunchException extends Exception { */ public LaunchException(JNLPFile file, Exception cause, String severity, String category, String summary, String description) { super(severity + ": " + category + ": " + summary + " " - + (description == null ? "" : description)); + + (description == null ? "" : description), cause); this.file = file; this.category = category; this.summary = summary; this.description = description; this.severity = severity; - - // replace with setCause when no longer 1.3 compatible - this.cause = cause; } /** * Creates a LaunchException with a cause. */ public LaunchException(Throwable cause) { - this(cause.getMessage()); - - // replace with setCause when no longer 1.3 compatible - this.cause = cause; + super(cause); } /** * Creates a LaunchException with a cause and detail message */ public LaunchException(String message, Throwable cause) { - this(message + ": " + cause.getMessage()); - - // replace with setCause when no longer 1.3 compatible - this.cause = cause; + super(message, cause); } /** @@ -132,57 +117,4 @@ public class LaunchException extends Exception { return severity; } - /** - * Return the cause of the launch exception or null if there - * is no cause exception. - */ - public Throwable getCause() { - return cause; - } - - /** - * Returns the causes for this exception. This method is - * useful on JRE 1.3 since getCause is not a standard method, - * and will be removed once netx no longer supports 1.3. - */ - public Throwable[] getCauses() { - ArrayList result = new ArrayList(); - - Reflect r = new Reflect(); - Throwable cause = this.cause; - - while (cause != null) { - result.add(cause); - cause = (Throwable) r.invoke(cause, "getCause"); - } - - return result.toArray(new Throwable[0]); - } - - /** - * Print the stack trace and the cause exception (1.3 - * compatible) - */ - public void printStackTrace(PrintStream stream) { - super.printStackTrace(stream); - - if (cause != null) { - stream.println("Caused by: "); - cause.printStackTrace(stream); - } - } - - /** - * Print the stack trace and the cause exception (1.3 - * compatible) - */ - public void printStackTrace(PrintWriter stream) { - super.printStackTrace(stream); - - if (cause != null) { - stream.println("Caused by: "); - cause.printStackTrace(stream); - } - } - } -- cgit v1.2.3