United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6579208 FamilyVersionSupport removed when installing jre-6u2-windows-i586-p.exe
6579208 : FamilyVersionSupport removed when installing jre-6u2-windows-i586-p.exe

Details
Type:
Bug
Submit Date:
2007-07-11
Status:
Resolved
Updated Date:
2011-02-16
Project Name:
JDK
Resolved Date:
2007-09-12
Component:
install
OS:
windows_vista
Sub-Component:
install
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
5.0u13,6u2
Fixed Versions:
6u4

Related Reports
Backport:
Backport:

Sub Tasks

Description
FULL PRODUCT VERSION :
java version 1.6.0_02
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode, sharing)

ADDITIONAL OS VERSION INFORMATION :
Windows Vista Ultimate
running 'ver' returns: Microsoft Windows [version 6.0.6000]

A DESCRIPTION OF THE PROBLEM :
When installing jre-6u2-windows-i586-p.exe on Windows Vista the FamilyVersionSupport entry in the Windows registry is removed. This means that your recommend approach to figure out which java version is installed when running applets, http://java.sun.com/j2se/1.5.0/family-clsid.html, is not working any more. The result of this is that all Applets are running using the newest version of the installed JRE even though it requires for instance JRE 1.4.2.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1) Install Windows Vista.
2) Install all Windows updates.
3) Install j2re-1_4_2_08-windows-i586-p.exe.
4) Install jre-6-windows-i586.exe and observe how the FamilyVersionSupport entry is added to the Windows registry.
5) Install jre-6u2-windows-i586-p.exe and observe how the FamilyVersionSupport entry is removed from the Windows registry.


EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I did not expect the FamilyVersionSupport entry to be removed from the Windows registry.
ACTUAL -
The FamilyVersionSupport entry is removed from the Windows registry and the Applets are not using the correct JRE anymore. The following java script, recommended by you, is not working anymore:

<SCRIPT language="JavaScript">
     // Return true if the family version is supported.
     function isFamilyVersionSupported() {
        try {
           return (new ActiveXObject("JavaPlugin.FamilyVersionSupport") != null);
        } catch (exception) {
           return false;
        }
     }

     if (isFamilyVersionSupported())
        // Family CLSID is supported
        document.writeln("<OBJECT classid=\"clsid:{CAFEEFAC-0014-0002-FFFF-ABCDEFFEDCBA}\" ..... </OBJECT>");
    else
        // No family CLSID supported, continue to use specific version
        document.writeln("<OBJECT classid=\"clsid:{CAFEEFAC-0014-0002-0008-ABCDEFFEDCBA}\" ..... </OBJECT>");
</SCRIPT>


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
Update the registry manually with the following reg file:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\JavaPlugin.FamilyVersionSupport]

[HKEY_CLASSES_ROOT\JavaPlugin.FamilyVersionSupport\CLSID]
@="{761497BB-D6F0-462C-B6EB-D4DAF1D92D43}"

Or reinstall jre-6-windows-i586.exe again.

                                    

Comments
EVALUATION

On windows Vista, the installer calls into some functions in ssv.dll to setup
ssv related registry keys. To ensure that the FamilyVersionSupport registry key
stays after JRE installation, an additional check is needed in the RemoveProgIDs() function.
                                     
2007-07-25



Hardware and Software, Engineered to Work Together