JDK-6931373 : Deployment code should be friendly to roaming profile users
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 6
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2010-03-02
  • Updated: 2017-05-19
  • Resolved: 2011-01-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availabitlity Release.

To download the current JDK release, click here.
Related Reports
Duplicate :  
Relates :  
Relates :  
When Java installs on a Windows computer, it stores its updates, cache, and temporary files in the wrong data location.

On Windows there is this technology known as Roaming User Profiles. When a domain user logs in on the network their user profile is copied from the server to the local computer. When they log off, the profile copies back from the desktop to the server. This allows the user to go to any domain joined computer, log in, and their desktop and documents follow them to that computer.

Microsoft's way of handling temporary application files and other temp files is to create a special section of the profile for temporary data. This location may store as much data as necessary but does not copy back and forth to the network. On Windows XP this is called "\Local Settings\Application Data" and "\Local Settings\Temp" in each user profile, and is usually a hidden and/or a protected system folder.

However many 3rd party companies apparently do not understand how roaming works or its limitations, and Java really screws it up. JRE stores nothing in the Local Settings section and puts everything into the roaming side, which can total a couple hundred megs and adds to the roaming login/logout delays.

Meanwhile, it appears that most Java updates don't delete themselves after they install, each one leaving behind a 10-25 meg drag on the user's roaming login and logout times every time an update downloads to be installed. 


The fix:

4. Remove anything from "\{user}\Application Data\Sun\Java\Deployment\" that is not a user or JRE preferences file. (This means delete "Deployment\Cache\")

5. Store the deployment cache locally only, in "\{user}\Local Settings\Application Data\Sun\Java\Deployment\Cache\"

On Vista/Win7 the profile directory layout does change somewhat so the storage locations may be slightly different for those Windows versions. Generally using the registry locations for user profile folders should put the temp files and updates in the right temporary spot..

Note: part of required changes are in the install/autoupdate area and they are filed as 6931370.

EVALUATION Change cache location to be local to the system. Perhaps it has sense to consider intermediate approached - to avoid complete "cache repopulation" we need either migrate cache during install or change location only for systems where roaming profiles are enabled?