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.
JDK 8 JDK 9
8u40 b15Fixed 9Fixed
Related Reports
Duplicate :  
Relates :  
Description
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
Comments
Tested with 8u40 b16 pit. Tested offline / iftw / and jdk bundles. "Enable Java Access Bridge" is visible
24-11-2014

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
06-11-2014

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.
05-11-2014

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.
31-10-2014

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
31-10-2014

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 }
31-10-2014

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.
31-10-2014

Is it critical for 8u40? Reproducible on 9?
30-10-2014

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.
27-10-2014

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

Ok, Avani, I'm fully agree with you.
13-10-2014

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.
12-10-2014

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.
09-10-2014

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.
09-10-2014

Not a duplicate of JDK-8030124
09-10-2014