[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