JDK-6668994 : Files shouldn't be written to virtualized jre directory
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 6u10
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: windows_vista
  • CPU: x86
  • Submitted: 2008-02-28
  • Updated: 2011-03-31
  • Resolved: 2011-03-31
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Description
DownloadManager is querying request.list located in diffrent location.
<User Home>/AppData/Local/VirtualStore/Program Files/Java/jre6/lib/bundles/requested.list

DownloadManager checks this first , I think DownloadManager should look only into  <jre>/lib/bunldes/request.list ,  If not  as part of un-installation we should remove  this file.
Otherwise even with out specifying setAdditionaBundles()  DownloadManager will try to download bundles.  I will file a bug on this.
I am getting the  IOException because of this and I am not getting this.  Even the NumberFormatException while downloading rmi bundle  ( 6667677 )  again  is due to this.

Comments
EVALUATION I went looking for how I could reliably find <User Home>/AppData/Local/VirtualStore/Program Files/Java/jre6 in the MSI and think we are going about this wrong. Which <User Home> should the uninstall remove files from? How does not deleting AppData/Local/VirtualStore/Program Files/Java/jre6 directories for ALL individual users solve the problem? In Microsoft's Virtualization Recommendations, this line about applications only storing "data in per-user locations or in computer locations within %allusersprofile% (CSIDL_COMMON_APPDATA) that have access control list (ACL) settings properly set."[1] supports putting requested.list in the users deployment dir. [1]From WindowsVistaUACDevReqs.doc downloaded from http://msdn2.microsoft.com/en-us/library/aa480150.aspx: "Virtualization Recommendations Virtualization is intended only to assist in application compatibility with existing programs. Applications designed for Windows Vista should NOT perform writes to sensitive system areas, nor should they rely on virtualization to provide redress for incorrect application behavior. When updating existing code to run on Windows Vista, developers should ensure that, during run-time, applications only store data in per-user locations or in computer locations within %allusersprofile% (CSIDL_COMMON_APPDATA) that have access control list (ACL) settings properly set. Important Microsoft intends to remove virtualization from future versions of the Windows operating system as more applications are migrated to Windows Vista. For example, virtualization is disabled on 64-bit applications. The following list details other file and registry virtualization recommendations: ��� Add an application manifest with an appropriate requestedExecutionLevel for your interactive applications. This will turn virtualization off for the manifested application."
15-04-2008

EVALUATION It's decided that the fix is to remove all files from: <User Home>/AppData/Local/VirtualStore/Program Files/Java/jre6 during uninstall. We may need to add items to the Directory table and the RemoveFile table for this to take place.
25-03-2008