JDK-6882923 : Applet JARs in cache_archive cannot be accessed if the applet cache is empty
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 6u16
  • Priority: P4
  • Status: Resolved
  • Resolution: Cannot Reproduce
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2009-09-17
  • Updated: 2015-02-05
  • Resolved: 2015-02-05
Related Reports
Relates :  
Description
FULL PRODUCT VERSION :
JRE-Version 1.6.0_16-b01

ADDITIONAL OS VERSION INFORMATION :
Windows XP Service Pack 3

A DESCRIPTION OF THE PROBLEM :
This bugreport is related to the report with the internal review ID 1599797.

If the applet cache is empty and applet jars (in the cache_archive attribute) are loaded for the first time, the classes in the jar files cannot be accessed which leads to NoClassDefFound-Errors. If you restart the browser, everything works fine.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Steps 1-4 are necessary to work around the bug with the internal review ID 1599797.

1. enable and clear the applet cache, activate the next-generation plugin
2. restart your browser
3. go to https://www.elsteronline.de/eportal/ , select "Software-Zert." and click "Login"
4. restart your browser
5. go to https://www.elsteronline.de/eportal/eop/auth/RegistrierungSoft-PSE.tax and click on the link "Schritt 2...."

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The plugin loads and displays the applet without any errors.
ACTUAL -
The applet cannot be loaded tue to a ClassNotFoundException. The missing class is in applethelper.jar which is referred by the cache_archive attribute in the HTML-applet-tag

ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NoClassDefFoundError: de/elster/portal/applet/ZoomApplet
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$400(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: de.elster.portal.applet.ZoomApplet
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
Restarting the browser works. The problem only occurs when a jar file is loaded the first time.

The other known workaround is to disable the next-generation plugin and switch back to the classic plugin.