JDK-7195556 : Install of both 32 bit JRE and 64 bit JRE produces incompatible javacpl.exe
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 7
  • Priority: P1
  • Status: Resolved
  • Resolution: Cannot Reproduce
  • OS: windows_7
  • CPU: x86
  • Submitted: 2012-08-31
  • Updated: 2013-03-06
  • Resolved: 2013-03-06
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.
JDK 7 JDK 8
7u21Resolved 8Resolved
Description
FULL PRODUCT VERSION :
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601] 64 bit Windows 7 Professional

A DESCRIPTION OF THE PROBLEM :
If I install 32 bit java and then install 64 bit (since I have both 64 bit and 32 bit IE), and then open up the Java Control Panel/Update and click on Update Now, I get an error box:

java.lang.RuntimeException: Can not launch update check.  jucheck.exe dosn't exist at: C:\Program Files\Common Files\Java\Java Update\jucheck.exe

(note the spelling of doesn't)

jucheck does exist at C:\Program Files (x86)\Common Files\Java\Java Update but no Java folder even exists at C:\Program Files\Common Files\.



STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
On Win 7 Professional 64 bit, uninstall all java.
Install 32 bit java using JavaSetup7u7.exe. Note that control panel says that Java 32-bit can be configured. Note that Update Now works in the Control Panel applet.
Install 64 bit java using jre-7u7-windows-x64.exe. Note that control panel no longer has the 32 bit attached to the title of the applet. Note that Update Now no longer works.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I expect jucheck.exe to run
ACTUAL -
java.lang.RuntimeException: Can not launch update check.  jucheck.exe dosn't exist at: C:\Program Files\Common Files\Java\Java Update\jucheck.exe

ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.RuntimeException: Can not launch update check.  jucheck.exe dosn't exist at: C:\Program Files\Common Files\Java\Java Update\jucheck.exe
	at com.sun.deploy.panel.WinUpdatePanel.actionPerformed(Unknown Source)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)


REPRODUCIBILITY :
This bug can be reproduced always.

Comments
Currently on windows 7, if both 32/64 bit JRE installed, we only show 64-bit java control panel in windows control panel, this is by design. // On 64-bit XP and Vista windows, there exists a separate folder within the // windows control panel for storing 32-bit control panel items. So both // 32-bit and 64-bit Java Control Panel can be accessed on those platforms if // both 32-bit and 64-bit JREs are installed. // On 64-bit windows 7, there won't be a separate folder within the windows // control panel for storing 32-bit control panel items. If both 32-bit and // 64-bit JREs are installed, only the 64-bit Java Control Panel is accessible // from windows control panel; the 32-bit Java Control Panel is accessible // if only 32-bit JRE is installed or the 64-bit JRE is uninstalled with 32-bit // JRE remaining on the machine. The original submitter complain is when they invoke 64-bit JCP - they still see update panel. We all cannot reproduce that so far. If there is a need to show both 32/64 bit JCP on win7-64 bit windows control panel, we should open a separate issue for that. Closing this issue as cannot reproduce. Please re-open if you can provide steps to invoke 64-bit JCP that shows the java update tab.
13-12-2012

assigning to deploy group for eval
13-12-2012

I was able to reproduce this. The bug is that both 32-bit and 64-bit JCP's *should* show up in the Windows Control Panel, but it seems that only the 64-bit one shows up when you install both. In 7u4, we moved the JCP registration code to deploy.dll. So the deploy group owns this code now. I will assign to them.
13-12-2012

I didn't reproduce this issue either. Tested on 2 different Win 7 X64 environments. There is no Update tab in 64 bit Java Control Panel. Windows 7 Control Panel will show 64 bit Java item if both 32 bit and 64 bit exist. It is Windows 7 behavior.
13-12-2012

In my environment (Win7 Pro 64bit) JCP for jre64bit does not have "Update" tab Note that fix for JDK-8004654 will add the tab (and run jucheck from "Program Files (x86)" for both 32/64bit) in jdk8 I think if there are 32bit & 64bit jres installed, control panel should contain both "Java" and "Java (64bit)" items
13-12-2012