[rfc][icedtea-web] Fix for PR1157: Applets can hang browser after fatal exception
Adam Domurad
adomurad at redhat.com
Fri Jan 25 07:56:25 PST 2013
This one was took quite some effort to track down. Essentially because
Firefox does not hold our plugin out-of-process we can potentially hang
the browser if we are not careful.
The issue is explained in comment in patch file PR1157.patch. Basically
there was a long timeout in PluginAppletViewer.waitForAppletInit. It was
supposed to 'wake up' when an applet dispatched an event signifying it
completed loading, but it was not happening in the case of a fatal
exception.
No automated reproducer yet, but I believe this patch is simple enough
that it can go in before one.
I have added a 'reproducing catalyst' -- pseudo-reproducer.patch. This
is NOT a patch intended to go into ITW HEAD. With this patch the worker
pool consists of one thread effectively, so the hanging manifests itself
very easily. Confirming the patch works with this goes as follow:
1. Apply pseudo-reproducer.patch to HEAD
2. Run
http://jogamp.org/deployment/jogamp-current/jogl-applet-runner-newt-gears-normal-napplet.html
and refresh. Firefox should hang, or at least display bizarre behaviour.
--- this is nothing special - just a failing (ATM) applet
3. Apply PR1157.patch on top
4. Run the same page and refresh, Firefox should work fine.
ChangeLog for PR1157.patch:
2013-XX-XX Adam Domurad <adomurad at redhat.com>
Fix PR1157: Applets can hang browser after fatal exception
* NEWS: Add entry for PR1157
* netx/net/sourceforge/jnlp/NetxPanel.java
(runLoader): Move dispatchAppletEvent into a 'finally' block.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PR1157.patch
Type: text/x-patch
Size: 1700 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130125/3807e1d8/PR1157.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pseudo-reproducer.patch
Type: text/x-patch
Size: 907 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130125/3807e1d8/pseudo-reproducer.patch
More information about the distro-pkg-dev
mailing list