[rfc] [icedtea-web] better error reporting for LaunchException in plugin

Jiri Vanek jvanek at redhat.com
Mon Jan 21 03:35:53 PST 2013


Launch errors are thrown from netx, and printed out .. somewhere. At the end plugin (correctly) fails with NPE.
It Is not nice. Eg in SplashError dialogue they can not be shown.

I have added static accumulator for LaunchErrors (== all errors preceding npe in plugin) and then I'm adding this chain of exception to Splash error report.

It is quite useful - see example - but there is one pitfall. As accumulator being static, it is cumulating errors from all running applets :(
However I have not found a way how to distinguish between individual applets :( (any idea welcomed!)
I have added small warkaround  with timestamps and localised explanation.. and.. it is still better then nothing :)


J.


**example**

So now instead of plain, nothing saying
"IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+
Mon Jan 21 12:29:17 CET 2013
java.lang.NullPointerException
	at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130)
	at sun.applet.AppletPanel.run(AppletPanel.java:380)
	at java.lang.Thread.run(Thread.java:679)"

Is there:

IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+
Mon Jan 21 12:29:17 CET 2013
java.lang.NullPointerException
	at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130)
	at sun.applet.AppletPanel.run(AppletPanel.java:380)
	at java.lang.Thread.run(Thread.java:679)

  Chain:
1) at Mon Jan 21 12:27:27 CET 2013
net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running.
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:240)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347)
	at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751)
	at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713)
	at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942)
2) at Mon Jan 21 12:27:27 CET 2013
net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet.
	at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784)
	at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713)
	at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942)
Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running.
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:240)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347)
	at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751)
	... 2 more
3) at Mon Jan 21 12:27:29 CET 2013
net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running.
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:240)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347)
	at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751)
	at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713)
	at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942)
4) at Mon Jan 21 12:27:29 CET 2013
net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet.
	at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784)
	at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713)
	at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942)
Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running.
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:240)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347)
	at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751)
	... 2 more

-------------- next part --------------
A non-text attachment was scrubbed...
Name: moreErrorReporting.patch
Type: text/x-patch
Size: 8984 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130121/f3ea807f/moreErrorReporting.patch 


More information about the distro-pkg-dev mailing list