FULL PRODUCT VERSION :
JRE 7 update 51
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601
EXTRA RELEVANT SYSTEM CONFIGURATION :
Self-Sign/Sign the jar archive containing the Applet.
Self-Sign/Sign the Deployment rulesets
A DESCRIPTION OF THE PROBLEM :
A bug (id=6709839) (JDK-6697256) that was fixed as of the version JRE 6 update 10 can now be seen reappearing in JRE 7u51 (latest as of 1/30/2014). Due to the enterprise need several Java Applets designed to run with the JRE 5u12 are still needed. To ensure proper security the Deployment Rule Set is used. A test Applet was run without JRE 7 where it runs in IE 10 (32bit) with JRE5u12. Once the Deployment Rule Set is enforced the Applet failed to start even though two separate JRE consoles were seen opening up i.e. one for the JRE 7u51 and the other for the JRE 5u12, but no where any error message showed the actual reason of failure. Once the tracing and logging were enabled from the JRE 7u51 control panel then a similar error messages those once reported for bug_id=6709839 were seen again. As a proof of the bug reappearring, the JRE 7u51 was uninstalled in favor of JRE 6u10 and the new JRE 6u10 successfully handed over the runtime to JRE 5u12 by showing a dialog box that it was going to do just that. And once the Applet ran it printed the java version as 1.5.0_12 and not 1.6.0_10.
REGRESSION. Last worked in version 6u43
ADDITIONAL REGRESSION INFORMATION:
JRE 6u10
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
0. Instal JRE 5 u12 in the user worksatation
1. create a simple Java Applet (JApplet) that shows the java.version when it runs.
2. compile the Applet with JDK 5 u 12 (Strictly)
3. Deploy to test in IE (it should appear)
4. Install JRE 7u51 and create Deployment Rule Set as below
<ruleset version="1.0+">
<rule>
<id location="{you applet location}"/>
<action permission="run" version="1.5.0_12" />
</rule>
</ruleset>
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
1. The Applet should run showing java version as 1.5.0_12
ACTUAL -
1. once run in IE observe two JRE console opening up (of course set them to show up during runtime) but the Applet will not run.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
No Error message, until the tracing and logging is enabled from the Java Control Panel where the error messages are similar to bug_id=6709839
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package test.applet;
===HTML CODE====
<html>
<body>
<OBJECT
classid="clsid:CAFEEFAC-0015-0000-FFFF-ABCDEFFEDCBA"
width="200" height="200">
<PARAM name="code" value="test.applet.MyApplet">
<PARAM name="archive" value="myapplet.jar">
<param name="java_version" value="1.5.0_12"/>
</OBJECT>
</body>
</html>
===JAVA CODE=====
package test.applet;
import java.awt.*;
import javax.swing.*;
public class MyApplet extends JApplet
{
public void paint(Graphics g)
{
try
{
String java_version=System.getProperty("java.version");
g.drawString("Java Version = "+java_version,20,50);
}catch(Exception e)
{
e.printStackTrace();
}
}
}
=======================================
Self-sign/Sign the myapplet.jar before deploying.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Install JRE 6u10 and the new JRE 6u10 will hand over the runtime to JRE 5u12 successfully by showing a dialog box that it was going to do just that bypassing the greater need of using Deployment Rule Sets.