JDK-8060057 : No checkbox "Enable JAB" after installation of public JRE 8 (only x86 JRE)
  • Type: Bug
  • Component: install
  • Affected Version: 8,8u20,8u25,8u40
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-10-09
  • Updated: 2015-06-03
  • Resolved: 2014-11-10
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.
8u40 b15Fixed 9Fixed
Related Reports
Duplicate :  
Relates :  
Regression: Yes.

No checkbox "Enable JAB"  on "Control Panel\Ease of Access\Ease of Access Center\Use the computer without a display" after installation of public JRE 8 (only i586 JRE; PASS on x64).

Steps to reproduce:
1) Uninstall all jres &jdks from machine.
2) Install jdk 8u25b18 or any other jdk 8 i586 (e.g. jdk 8 FCS)
3) Go to Control Panel\Ease of Access\Ease of Access Center\Use the computer 
4) Try to find a checkbox "Enable Java Access Bridge"

I tested with 7u71 & 7u72 - Checkbox is shown after installation of JRE.
PASS on JRE 8 x64

Testsuite name: Accessibility manual
Test name(s): enable-disable/ControlPanel/1-EaseOfAccess-Enable
Product(s) tested: JRE i586.
OS/architecture: Win 7 x64

Error log file (if present):  - 

Reproducible: Always
Reproducible on machine: any Win 7 or Win 8 machine (I did not tested on XP & Vista).

Is it a Regression: Yes(PASS on jdk 7u71 & 7u72 and lower versions of jdk 7)
Regression introduced in release/build: JDK 8
Test result on the last GAed release for this train: Fail (8u20)
[if Fail] Test result on FCS: Fail (1.8.0 b132)

Is it a platform specific issue: Yes
[If platform specific issue] Is it a new (previously unsupported) OS/browser/mode testing: No

RULE enable-disable/ControlPanel/1-EaseOfAccess-Enable any any
Tested with 8u40 b16 pit. Tested offline / iftw / and jdk bundles. "Enable Java Access Bridge" is visible

Pete, the above approach seems to resolve this issue for me. I ran some sanity tests for 32/64 bit install and the check box was correctly enabled. Here is test build in case you want to give it a try: http://oklahoma.us.oracle.com/arc/ds_build/1.9.0/as243799/2014-11-06_16-09-47

If the problem is HKLM/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Accessibility/ATs/Oracle_JavaAccessBridge not being present for 32 bit installers since it writes to the Wow6432Node location, we could just force the 32 bit installer to create Oracle_JavaAccessBridge in the 64 bit location which is HKLM/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Accessibility/ATs. Will try this solution and let you know if the issue is resolved. Please let me know if you forsee any issues with the 32 bit installer creating Oracle_JavaAccessBridge under HKLM/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Accessibility/ATs.

Apparently Windows doesn't care about the entry in Wow6432Node when setting up the accessibility page in the control panel. I think the next step might be to uninstall JAWS and install its 32 bit version and see how it does it. That is, /if/ the 32 bit JAWS installer will install on 64 bit Win.

Pete, For 64 bit installers, Oracle_JavaAccessBridge is created at HKLM/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Accessibility/ATs/Oracle_JavaAccessBridge For 32 bit jre installer this key gets created at HKLM/SOFTWARE/Wow6432Node/Microsoft/WindowsNT/CurrentVersion/Accessibility/ATs/Oracle_JavaAccessBridge. I just installed the latest promoted 32 bit online jre: http://oklahoma.us.oracle.com/arc/ds_build/1.8.0_40/nightly/2014-10-31_01-31-12/windows-i586/jre-8u40-ea-windows-i586-iftw.exe and this key and its entries were correctly created. Please see the attached screen shot

Is it possible that this code is returning FALSE during the 32 bit install? 316 if (latestJava->version() < JavaVersion(_T("1.7.0_06"))) { 317 return FALSE; 318 }

This is a bug in the 32 bit 8u40 install (and maybe other versions after the point of regression). The checkbox will be there if HKLM/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Accessibility/ATs/Oracle_JavaAccessBridge and its values are installed. However this key is missing for the 32 bit install. jabswitch is not used to set up this registry entry.

Is it critical for 8u40? Reproducible on 9?

As discussed with Pete earlier, the enabling/disabling check box mechanism seems to be based on "HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Accessibility\Configuration" registry key. Double checked the installer Access Bridge related source: http://tvp129231.uk.oracle.com:8080/source/xref/jdk9-dev/install/src/windows/installerdll/AccessBridge.cpp Installer doesn't seem to be updating the above registry. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Accessibility\ATs\Oracle_JavaAccessBridge. is the only JAB related regkey touched by installer. This key does contain the JAB related text and jabswitch.exe -enable command. However the mechanism to enable/disable checkbox is not handled by this key. "HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Accessibility\Configuration" seems to be getting created/updated with value "oracle_javaaccessbridge" in jdk/src/closed/windows/native/sun/bridge/jabswitch.cpp. static LPCTSTR ACCESSIBILITY_USER_KEY = 19 _T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility"); 20static LPCTSTR ACCESSIBILITY_SYSTEM_KEY = 21 _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\Session"); 22static LPCTSTR ACCESSIBILITY_CONFIG = 23 _T("Configuration"); 24static LPCTSTR STR_ACCESSBRIDGE = 25 _T("oracle_javaaccessbridge"); To summarize, installer doesn't seem to be creating/updating this regkey or running jabswitch.exe -disable that would likely cause the disabling of the checkbox. I believe a fix would be required in the jabswitch.cpp for correctly enabling the JAB checkbox on Windows Control Panel. Reassigning this to core-libs. Pete, please let me know if there are questions/concerns.

RULE enable-disable/ControlPanel/1-EaseOfAccess-Enable any any RULE misc/3-Reinstall any any

Ok, Avani, I'm fully agree with you.

The issue is more generic than described in JDK-8030124. So, it's essentially the same issue. Closing JDK-8030124 as the duplicate of this CR. The fix for JDK-8060057 should make sure that the JAB checkbox works fine for the scenario described in JDK-8030124.

JDK-8030124 assumes that JRE 7 is already installed when JRE 8 is being installed. This issue is about installation of JRE 8 on machine without JDK 7 or JRE 7.

Could you please elaborate why is this not a duplicate of JDK-8030124? The issue seems to be same when check box to enable the Java Access Bridge is missing after installing JDK8.

Not a duplicate of JDK-8030124