FULL PRODUCT VERSION :
java version "1.6.0_04"
java version "1.6.0_05"
java version "1.6.0_06"
java version "1.6.0_07"
ADDITIONAL OS VERSION INFORMATION :
Linux ubuntu 2.6.20-16-generic #2 SMP Sun Sep 23 19:50:39 UTC 2007 i686 GNU/Linux
Linux redhat64 2.6.18-92.el5 #1 SMP Tue Apr 13:16:15 EDT 2008 x86_64 GNU/Linux
EXTRA RELEVANT SYSTEM CONFIGURATION :
Firefox 3.x browser
A DESCRIPTION OF THE PROBLEM :
Applet hangs when loaded many times from the same jar under firefox3/Java1.6.0_04+/Linux (refreshing the same page or switching between linked pages)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Two ways to reproduce the bug :
1. Open a page with an applet, when the applet is successfully loaded use the reload/refresh button of the browser to reload the page
2. Different pages load the same jar and they contain user links to switch between them. If these page are opened in a frame of a master page then the bug occurs when the first applet is destroyed (when
the page changes).
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Applets should be created as usual.
ACTUAL -
Applet in the new page : freezed UI or status ���applet notinited���
Applet of the previous page when destroying : browser status ���applet bail��� and/or java.lang.InterruptedException
ERROR MESSAGES/STACK TRACES THAT OCCUR :
basic: Chargement de l'applet...
basic: Initialisation de l'applet...
basic: D��marrage de l'applet...
basic: completed perf rollup
Hello world !
basic: Thread d'applet joint...
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Thread.join(Thread.java:1143)
at java.lang.Thread.join(Thread.java:1196)
at sun.applet.AppletPanel.run(AppletPanel.java:404)
at java.lang.Thread.run(Thread.java:619)
basic: Exception : java.lang.InterruptedException
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Thread.join(Thread.java:1143)
at java.lang.Thread.join(Thread.java:1196)
at sun.applet.AppletPanel.run(AppletPanel.java:404)
at java.lang.Thread.run(Thread.java:619)
java.lang.ThreadDeath
at java.lang.Thread.stop(Thread.java:715)
at java.lang.ThreadGroup.stopOrSuspend(ThreadGroup.java:666)
at java.lang.ThreadGroup.stop(ThreadGroup.java:580)
at sun.awt.AppContext.dispose(AppContext.java:440)
at
sun.applet.AppletClassLoader.release(AppletClassLoader.java:752)
at
sun.plugin.security.PluginClassLoader.release(PluginClassLoader.java:441)
at sun.applet.AppletPanel.release(AppletPanel.java:181)
at sun.applet.AppletPanel.sendEvent(AppletPanel.java:292)
at
sun.plugin.AppletViewer.onPrivateClose(AppletViewer.java:1113)
at sun.plugin.AppletViewer$4.run(AppletViewer.java:1062)
at java.lang.Thread.run(Thread.java:619)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.applet.Applet;
public class HelloWorld extends Applet {
private static final long serialVersionUID = -5725261449143019265L;
public void start() {
System.out.println("Hello world !");
}
public HelloWorld() {}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
1. Reinstall a previous Java plugin (< 1.6.0_04)
2. Generate an UID for each applet declaration : <applet code="HelloWord.class" archive="HelloWord.jar?uid"> but then the applets cannot share data (via static members for example)
Release Regression From : 6u4
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.