/hg/icedtea-web: Fix PR1157: Applets can hang browser after fata...

adomurad at icedtea.classpath.org adomurad at icedtea.classpath.org
Mon Jan 28 08:38:40 PST 2013


changeset 74a70e0b15ef in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=74a70e0b15ef
author: Adam Domurad <adomurad at redhat.com>
date: Mon Jan 28 11:38:34 2013 -0500

	Fix PR1157: Applets can hang browser after fatal exception


diffstat:

 ChangeLog                                |  7 +++++++
 NEWS                                     |  1 +
 netx/net/sourceforge/jnlp/NetxPanel.java |  8 ++++++--
 3 files changed, 14 insertions(+), 2 deletions(-)

diffs (50 lines):

diff -r 3960d2a46f51 -r 74a70e0b15ef ChangeLog
--- a/ChangeLog	Wed Jan 16 15:35:09 2013 -0500
+++ b/ChangeLog	Mon Jan 28 11:38:34 2013 -0500
@@ -1,3 +1,10 @@
+2013-01-28 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.
+
 2013-01-16  Deepak Bhole <dbhole at redhat.com>
 
 	PR1260: IcedTea-Web should not rely on GTK
diff -r 3960d2a46f51 -r 74a70e0b15ef NEWS
--- a/NEWS	Wed Jan 16 15:35:09 2013 -0500
+++ b/NEWS	Mon Jan 28 11:38:34 2013 -0500
@@ -26,6 +26,7 @@
   - PR1189: Icedtea-plugin requires code attribute when using jnlp_href
   - PR1198: JSObject is not passed to javascript correctly
   - PR1260: IcedTea-Web should not rely on GTK
+  - PR1157: Applets can hang browser after fatal exception
 * Common
   - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered
   - PR955: regression: SweetHome3D fails to run
diff -r 3960d2a46f51 -r 74a70e0b15ef netx/net/sourceforge/jnlp/NetxPanel.java
--- a/netx/net/sourceforge/jnlp/NetxPanel.java	Wed Jan 16 15:35:09 2013 -0500
+++ b/netx/net/sourceforge/jnlp/NetxPanel.java	Mon Jan 28 11:38:34 2013 -0500
@@ -139,8 +139,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);
@@ -153,6 +151,12 @@
             this.appletAlive = false;
             e.printStackTrace();
             replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), getHeight(), e));
+        } 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);
         }
     }
 



More information about the distro-pkg-dev mailing list