Mercurial > hg > release > icedtea-web-1.3
changeset 507:f63bdf513e9d
Fix PR1157: Applets can hang browser after fatal exception
author | Adam Domurad <adomurad@redhat.com> |
---|---|
date | Fri, 01 Mar 2013 13:12:21 -0500 |
parents | c89c2bf6707b |
children | ca8b00cca4c3 |
files | ChangeLog NEWS netx/net/sourceforge/jnlp/NetxPanel.java |
diffstat | 3 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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 <adomurad@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. + 2013-02-06 Adam Domurad <adomurad@redhat.com> Name threads for easier debugging/tooling. Remove 2 erroneous
--- 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
--- 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); + } } /**