Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6756872
Votes 0
Synopsis PIP does not update Add Remove Program from 6u10 to 6u11 on x64
Category java:install
Reported Against
Release Fixed 6u11(b02)
State 10-Fix Delivered, bug
Priority: 2-High
Related Bugs
Submit Date 07-OCT-2008
Description
PIP from 6u10 to 6u11 does not update the Add or Remove Program Files entry from Java(TM) 6 Update 10 to Java(TM) 6 Update 11 on an WindowsXP Professional x64 Edition system (with SP2).

praveen wrote:
After installing 6u11b00 online bundle on top of 6u10 b32; I still see Add/Remove program show "Java(TM) 6 Update 10". this only happens on XP64 with 6u10 b32 bundles. It works fine with the bundles other then  6u10 b32.

There is no DisplayName entry for Java (TM) 6 Update 10 under HKEY_LOCAL_MACHINE\SOFTWARE\ customer \Windows\CurrentVersion\Uninstall

I see "Java(TM) 6 Update 10" entries under:
HKEY_CLASSES_ROOT\Installer\Products\4EA42A62D9304AC4784BF238120601FF
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\4EA42A62D9304AC4784BF238120601FF
HKEY_LOCAL_MACHINE\SOFTWARE\ customer \Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\4EA42A62D9304AC4784BF238120601FF\InstallProperties
Posted Date : 2008-10-07 17:15:43.0
Work Around
Ignore the name "Java(TM) 6 Update 10" displayed in Add or Remove Programs.
Under "Click here for support information" the version is updated to 6.0.110.

Running "java -version" in C:\WINDOWS\SysWOW64\cmd.exe
displays the correct information.
Evaluation
SetUpdatedJREProductName() only looks under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Posted Date : 2008-10-07 17:15:43.0

The SetUpdatedJREProductName() in regutils.dll updates registry keys in both locations in order to display the correct name.
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall
HKEY_CLASSES_ROOT\\Installer\\Products

The first one is not on the 64-bit machine. But, the second one is the correct one that needs to be changed.

For the  following keys on 64-bit machine, the first two are the same keys. The third one does not have any effect on the display name.
HKEY_CLASSES_ROOT\Installer\Products\4EA42A62D9304AC4784BF238120601FF
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\4EA42A62D9304AC4784BF238120601FF
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\4EA42A62D9304AC4784BF238120601FF\InstallProperties

I tested on the sqe machine the issue is reproducible. I am not sure why the function did not work on 64-bit windows and need to do more investigation
http://jre.sfbay/java/re/jdk/6u10/promoted/rc2/b32/bundles/windows-i586/jre-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe
http://javadl.sun.com/webapps/download/GetFile/1.6.0_11-ea-b00/windows-i586/jre-6u11-ea-windows-i586-p-iftw.exe
Posted Date : 2008-10-07 22:21:21.0

There are 2 trees for the registry on 64-bit Windows:

1. The default tree is the 64-bit tree at: HKEY_LOCAL_MACHINE\SOFTWARE
2. The is a sub-tree for the 32-bit registries at: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

If it's a 64-bit app, it will automatically write to #1.  If it's a 32-bit app, it'll automatically write to #2.

I believe that all MSI registries always go into #1, whether it's a 32-bit or 64-bit MSI. 

So I bet the problem is that the 32-bit MSI is trying to write to the MSI key at #2, but it really should be trying to write to the #1 location. 

If that's true, we'd need to find a way to have a 32-bit MSI/dll to write to the 64-bit tree.  I've seen that it's possible for a 64-bit dll to write to the 32-bit node, but I'm not sure if a 32-bit dll can write to a 64-bit registry tree.  Worst case is we'd need to create a 64-bit .exe that does the job of hacking this registry.
Posted Date : 2008-10-08 17:06:54.0

This might be a way to write to the 64-bit tree from a 32-bit app:

http://weblog.infoworld.com/stratdev/archives/2007/06/accessing_the_6.html

Use KEY_WOW64_64KEY if we detect we're on a 64-bit OS, for the function that hacks the MSI key.
Posted Date : 2008-10-08 17:58:06.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang