/hg/icedtea6: Fix IcedTea bz#436 - Close all applet threads on exit

dbhole at icedtea.classpath.org dbhole at icedtea.classpath.org
Fri May 7 13:58:26 PDT 2010


changeset 373a443db017 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=373a443db017
author: Deepak Bhole <dbhole at redhat.com>
date: Fri May 07 16:57:27 2010 -0400

	Fix IcedTea bz#436 - Close all applet threads on exit


diffstat:

2 files changed, 13 insertions(+), 2 deletions(-)
ChangeLog                                                |    6 ++++++
plugin/icedteanp/java/sun/applet/PluginAppletViewer.java |    9 +++++++--

diffs (46 lines):

diff -r 7cdfd5cb14cf -r 373a443db017 ChangeLog
--- a/ChangeLog	Fri May 07 16:41:14 2010 -0400
+++ b/ChangeLog	Fri May 07 16:57:27 2010 -0400
@@ -1,3 +1,9 @@ 2010-05-07  Deepak Bhole <dbhole at redhat.
+2010-05-07  Deepak Bhole <dbhole at redhat.com>
+
+	* plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
+	(handleMessage): Don't print stack trace on InterruptedException.
+	(appletClose): Kill misbehaving applets that don't shut down properly.
+
 2010-05-07  Deepak Bhole <dbhole at redhat.com>
 
 	* netx/net/sourceforge/jnlp/Launcher.java
diff -r 7cdfd5cb14cf -r 373a443db017 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
--- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java	Fri May 07 16:41:14 2010 -0400
+++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java	Fri May 07 16:57:27 2010 -0400
@@ -1,4 +1,4 @@
-/* VoidPluginCallRequest -- represent Java-to-JavaScript requests
+/* PluginAppletViewer -- Handles embedding of the applet panel
    Copyright (C) 2008  Red Hat 
 
 This file is part of IcedTea.
@@ -735,7 +735,7 @@ import com.sun.jndi.toolkit.url.UrlUtil;
                       Thread.sleep(50);
                       wait += 50;
                   } catch (InterruptedException ie) {
-                      ie.printStackTrace();
+                      // just wait
                   }
              }
              
@@ -1605,9 +1605,14 @@ import com.sun.jndi.toolkit.url.UrlUtil;
          {
              public void run()
              {
+                 ThreadGroup tg = ((JNLPClassLoader) p.applet.getClass().getClassLoader()).getApplication().getThreadGroup();
+                
                  appletShutdown(p);
                  appletPanels.removeElement(p);
                  dispose();
+
+                 if (tg.activeCount() > 0)
+                 tg.stop();
 
                  if (countApplets() == 0) {
                      appletSystemExit();



More information about the distro-pkg-dev mailing list