# HG changeset patch # User Adam Domurad # Date 1362161541 18000 # Node ID f63bdf513e9dc4c3fed3ca2f4544b5cb0bc8c28d # Parent c89c2bf6707b285fb6dd0846cd28a43d9b59a675 Fix PR1157: Applets can hang browser after fatal exception diff -r c89c2bf6707b -r f63bdf513e9d ChangeLog --- a/ChangeLog Wed Feb 06 09:22:51 2013 -0500 +++ b/ChangeLog Fri Mar 01 13:12:21 2013 -0500 @@ -1,3 +1,10 @@ +2013-03-01 Adam Domurad + + 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. + 2013-02-06 Adam Domurad Name threads for easier debugging/tooling. Remove 2 erroneous diff -r c89c2bf6707b -r f63bdf513e9d NEWS --- a/NEWS Wed Feb 06 09:22:51 2013 -0500 +++ b/NEWS Fri Mar 01 13:12:21 2013 -0500 @@ -8,6 +8,9 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.3.3 (2012-XX-XX): + PR1157: Applets can hang browser after fatal exception + New in release 1.3.2 (2012-XX-XX): * Plugin PR1260: IcedTea-Web should not rely on GTK diff -r c89c2bf6707b -r f63bdf513e9d netx/net/sourceforge/jnlp/NetxPanel.java --- a/netx/net/sourceforge/jnlp/NetxPanel.java Wed Feb 06 09:22:51 2013 -0500 +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Fri Mar 01 13:12:21 2013 -0500 @@ -163,8 +163,6 @@ // won't make it to the applet, whereas using sun.applet.AppletClassLoader // works just fine. - dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); - if (applet != null) { // Stick it in the frame applet.setStub(this); @@ -176,7 +174,13 @@ } catch (Exception e) { this.appletAlive = false; e.printStackTrace(); - } + } finally { + // PR1157: This needs to occur even in the case of an exception + // so that the applet's event listeners are signaled. + // Once PluginAppletViewer.AppletEventListener is signaled PluginAppletViewer it can properly stop waiting + // in PluginAppletViewer.waitForAppletInit + dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); + } } /**