JDK-7132478 : Java Update Button at the ControlPanel does nothing on German Windows XP
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 6
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows
  • CPU: x86
  • Submitted: 2012-01-23
  • Updated: 2012-03-05
  • Resolved: 2012-02-09
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 Availability Release.

To download the current JDK release, click here.
7u4Fixed 8 b25Fixed
Windows XP SP3, german installation, JDK 6u30 or JDK 7u2 installed (the issue can also be reproduced with earlier update releases).

Testcase with 7u2:
Open ControlPanel, "Update" tab, click on "Jetzt updaten". Nothing happens. No error message, no dialog.

The action event that has been added to the "Jetzt updaten" button actually tries to launch

    C:\Programme\Common Files\Java\Java Update\jcheck.exe

However, that file does not exist on my german Windows XP. Actually "Common Files" is called "Gemeinsame Dateien" on my box and jcheck.exe is located in

    C:\Programme\Gemeinsame Dateien\Java\Java Update\jcheck.exe

EVALUATION This is an i18n and functional problem. Transfer the CR to category java_deployment.

SUGGESTED FIX based on the Source Code from 6u30 ... johann@tydirium:~$ diff UpdatePanel.java patched/UpdatePanel.java 638c638 < //Obtain the program files path by querying the registry --- > //Obtain the common files path by querying the registry 644c644 < "/v ProgramFilesDir"); --- > "/v CommonFilesDir"); 648,649c648,649 < //if cmdOutput string contains the ProgramFilesDir value, parse it < if(cmdOutput.contains("ProgramFilesDir")){ --- > //if cmdOutput string contains the CommonFilesDir value, parse it > if(cmdOutput.contains("CommonFilesDir")){ 667c667 < path = System.getenv("programfiles"); --- > path = System.getenv("CommonProgramFiles"); 671,672c671 < String jupdchecker = "\"" + path + //should point to windows "Program files" folder < File.separator + "Common Files" + --- > String jupdchecker = "\"" + path + //should point to windows "Common Files" folder

WORK AROUND Download Junction from http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx and create a directory symlink on Windows XP (I have made the example language independent so you can use it if you run into the same problem but on a non-german Windows XP): C:\>junction "%CommonProgramFiles%\..\Common Files" "%CommonProgramFiles%" Junction v1.06 - Windows junction creator and reparse point viewer Copyright (C) 2000-2010 Mark Russinovich Sysinternals - www.sysinternals.com Created: C:\Programme\Common Files Targetted at: C:\Programme\Gemeinsame Dateien Note that Junctions work on NTFS formatted devices and not on FAT32.

WORK AROUND Start jcheck.exe manually: %CommonProgramFiles%\Java\Java Update\jcheck.exe