JDK-7152068 : For 32 bit jre in 64 bit machine, fxreg.exe looks into system32 for npDeployJava1.dll
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 7u4
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows
  • CPU: x86
  • Submitted: 2012-03-07
  • Updated: 2012-04-13
  • Resolved: 2012-04-13
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 b31Fixed
on 64 bit windows machine, there's system32 folder for 64 bit application and sysWOW64 folder for 32 bit application.

However, during fx installation, fxreg.exe will look into both system32 and sysWOW64 for npdeployJava1.dll. This is wrong because if we have dtplugin for 64bit then we won't install 32 bit dtplugin anymore.

EVALUATION Switched to use of syswow64 for 32 bit apps running on 64 bit system. Propagate error codes to the callee

SUGGESTED FIX http://sa.sfbay.sun.com/projects/deployment_data/8/7152068.2/

EVALUATION We found out another functions that's also not get redirected, GetFileVersionInfoSize() and GetFileVersionInfo(). This might be the root cause of why we're not seeing dt dll get copied to sysWOW64 if there's a later version of dt dll exists in system32. And it's likely to happen when we have 64 bit jre8 installed on the system.

EVALUATION GetSystemDir in RegFX always get C:\Windows\system32 no matter it's calling from an 32 bit application and 64 bit application. However, in a normal 32 bit application testcase, when u try to 1) check file exist or 2) copy file to system32 folder, it get redirect to sysWOW64.