United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6622174 need to remove msvcr71.dll from the RemoveFile table
JDK-6622174 : need to remove msvcr71.dll from the RemoveFile table

Details
Type:
Bug
Submit Date:
2007-10-26
Status:
Closed
Updated Date:
2010-09-17
Project Name:
JDK
Resolved Date:
2008-01-24
Component:
install
OS:
generic,windows_xp,windows
Sub-Component:
install
CPU:
x86,generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
6u5
Fixed Versions:
6u10 (b11)

Related Reports
Backport:
Duplicate:
Duplicate:
Relates:

Sub Tasks

Description
There is a bug in MSI, where when it goes to delete each of our JRE files, it scans all processes to see which processes are using any files of the same name.

The bigger problem is specifically with msvcr71.dll  MSI goes to remove this in the jre/bin directory, and it also notices other random processes are using the same file (though their own copy).  So sometimes our uninstaller will ask users to showdown many apps that Java isn't even using, because these apps also use msvcr71.dll.

I believe the one fix would be to individually add files to the RemoveFile table for the jre/bin directory, and specifically leave out msvcr71.dll.  Then we'll need to manually remove it in the UninstallJRE function in RegUtils.dll.  Though this isn't really an elegant solution. 

Another approach to this problem would be to not use the RemoveFile table anymore, and use our new FilesInUse.cpp native win32 dialog.  We'd also have to do all of the removing of the JRE files ourselves.  This is probably the better solution.

                                    

Comments
EVALUATION

Move msvcr71.dll from the File table back into core.zip so Windows Installer doesn't know about it.
Instead of bin\* in the RemoveFile table, add an entry for every file other than msvcr71.dll.
MSIDuplicateUnzippedFiles will copy bin\msvcr71.dll to bin\new_plugin\msvcr71.dll.
MSIRemoveInstalledFiles will try to delete bin\msvcr71.dll. (Windows Installer will ignore errors)
                                     
2007-12-21
SUGGESTED FIX

Moved msvcr71.dll from the File table back into core.zip so Windows Installer doesn't know about it.
Instead of bin\* in the RemoveFile table, add an entry for every file other than msvcr71.dll.
MSIDuplicateUnzippedFiles will copy bin\msvcr71.dll to sbin
ew_plugin\msvcr71.dll.
MSIRemoveInstalledFiles will try to delete bin\msvcr71.dll. (Windows Installer will ignore errors)

testcases: http://oklahoma.east/deployment/www/tests/1.6.0_10/6622174/testcases.html
webrev: http://sa.sfbay.sun.com/projects/deployment_data/6u10/6622174
                                     
2007-12-21
SUGGESTED FIX

http://sa.sfbay.sun.com/projects/deployment_data/6u10/6622174
                                     
2008-01-10



Hardware and Software, Engineered to Work Together