United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6697772 : JDK 6u10 installer doesn't install public JRE if JRE 6u5 was installed on that machine

Details
Type:
Bug
Submit Date:
2008-05-05
Status:
Closed
Updated Date:
2010-09-08
Project Name:
JDK
Resolved Date:
2008-07-11
Component:
install
OS:
windows_nt,generic,windows_xp,windows
Sub-Component:
install
CPU:
x86,generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
6u10
Fixed Versions:
6u10 (b27)

Related Reports
Duplicate:
Duplicate:
Duplicate:
Duplicate:

Sub Tasks

Description
There is a public JRE component inside JDK installer, I did the following test on one machine:

1. Install JRE 6u5 on that machine.
2. Install JDK 6u10 on the same machine, the public JRE component didn't show up during installation, it is thinking the machine already has the latest JRE 6u10, which isn't correct.

I tested on both 32bit and 64bit OS, with 32bit JDK and 64bit JDK, the same issue has been found. It is important to fix this issue in 64bit OS because it will stop to install 64bit JRE when you have a 32bit 6u5 JRE installed on user's machine.

                                    

Comments
SUGGESTED FIX

Changed JDK MSI to check for SOFTWARE\JavaSoft\Java Runtime Environment\[JDK_VERSION], JavaHome registry entry instead of [MAJOR].[MINOR] for JREINSTALLED.
Use AWK_RegLocator_Type so x64 JDK sets JREINSTALLED based on x64 registry.
NewSignature2 was renamed to SameVersionJREInstalledSignature so AWK_RegLocator_Type can modify the correct entry for x64.

Changes to sdk\Makefile to validate on windows-amd64:  run Wi64bitValidation.vbs to modify the Validation table after InstallShield creates the MSI

test cases: http://oklahoma.east.sun.com/deployment/www/tests/1.6.0_10/testcase_6697772.txt :

1. For windows-i586 JDK
   a. (regression test) With no JRE installed
      Install 6u10 JDK
      Verify Public JRE is offered to be installed and installed when left selected.
   b. With 6u5 JRE installed
      Install 6u10 JDK
      Verify Public JRE is offered to be installed and installed when left selected.
   c. Install 6u10 JRE
      Install 6u10 JDK
      Verify Public JRE is not offered to be installed, and 6u10 JRE still installed

2. For windows-amd64 JDK on x64 Windows OS.
   a. (regression test) With no JRE installed
      Install 6u10 JDK
      Verify Public JRE is offered to be installed and installed when left selected.
   b. With 6u5 x64 JRE installed
      Install 6u10 JDK
      Verify Public JRE is offered to be installed and installed when left selected.
   c. Install 6u10 x64 JRE
      Install 6u10 x64 JDK
      Verify Public JRE is not offered to be installed, and 6u10 JRE still installed
   d. Install 6u10 32-bit JRE
      Install 6u10 x64 JDK
      Verify Public JRE is offered to be installed and installed when left selected.
                                     
2008-06-11
EVALUATION

The fix would involve changing the Condition.idt table for the sdk, as well as the RegLocator for NewSignature2.

Something like this:

<<NewSignature2   2       SOFTWARE\JavaSoft\Java Runtime Environment\[MAJOR].[MINO
R]      JavaHome        2^M
>>NewSignature2   2       SOFTWARE\JavaSoft\Java Runtime Environment\[FULLVERSION]      JavaHome        2^M
                                     
2008-06-06
EVALUATION

this has nothing to do with 64 bit install.
install of JDK is not offering JRE install
                                     
2008-06-05
EVALUATION

This is correct behavior.

As of 6u10, our stance is that if they already have a public JRE of the same family (6), then we do not offer a public JRE.  It was getting to be too much of a headache to deal with all of the reinstall behavior in those cases, and with little reward.  We depend on auto-update to keep their public JRE up-to-date. 

If the true 64-bit installer is asking for a reinstall of the public JRE, then that's the bug.
                                     
2008-05-16



Hardware and Software, Engineered to Work Together