Bug 77061

Summary: ACCESSIBILITY: Java 8 JRE 1.8u0 and Java Acces Bridge 2.0.4 incompatible for UAA bridge on Windows
Product: LibreOffice Reporter: V Stuart Foote <vstuart.foote>
Component: LibreofficeAssignee: Not Assigned <libreoffice-bugs>
Status: NEW --- QA Contact:
Severity: normal    
Priority: medium CC: caolanm, d.ostrovsky, michael.meeks, mst.fdo, vstuart.foote
Version: 4.2.3.2 rc   
Hardware: x86-64 (AMD64)   
OS: Windows (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 60251    

Description V Stuart Foote 2014-04-04 16:43:11 UTC
Java 8 SE released 2014-03-18, the JRE 1.8 and its Java Access Bridge 2.0.4 is not compatible in some fashion with the existing hooks into the UNO Accessiblity API.

A correctly configured JRE 1.8 with JAB enabled (verified with JavaFerret-32.exe, and correct function of the SwingSet2.jar demo applets) hangs LibreOffice when the Tools --> Options --> Accessibility: Enable Assistive Technology Tools checkbox is set active.

If JRE 1.8u0 is installed, and the "Support assistive technology tools" option is selected during an installation/upgrade attemtp, it will hang on first launch.

If attempt is made to "Enable Assistive Technolgy Tools" from Tools --> Options --> Accessibility panel, with JRE 1.8 alone installed and selected from the Tools --> Options --> Advanced Java Options panel, it will hang.

Occurs when opening LibreOffice Version: 4.2.3.2, Build ID: 7c5c769e412afd32da4d946d2cb0c8b0674e95e0 and earlier builds for 4.2.x and 4.1.x branches I've tested.

The same installs will function for UAA bridge on Windows with JRE 1.7u51 and JAB 2.0.3

The JRE 8 alone does not seem to be the issue, just issues with use of the Java Access Bridge 2.0.4 when UAA AT support is active.

If a user can avoid activating assistive technology tool support until after enabling the IAccessible2 native bridge--then the Java SE 8, and JRE 1.8 can be enabled.  But that scenario is going to be very difficult for disabled users dependent on AT support.
Comment 1 V Stuart Foote 2014-04-04 17:00:03 UTC
This is made more onerous for AT dependent users as the JRE 1.8 installation is followed by a "validator" that removes "old" JRE versions.

Here is a StackTrace of the soffice.bin
Version: 4.2.3.2
Build ID: 7c5c769e412afd32da4d946d2cb0c8b0674e95e0
as hung when JAB 2.0.4 is called, process must be killed from TaskManager to recover:

wow64cpu.dll!TurboDispatchJumpAddressEnd+0x6c0
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x4a8
wow64.dll!Wow64SystemServiceEx+0x1ce
wow64.dll!Wow64LdrpInitialize+0x42b
ntdll.dll!RtlUniform+0x6e6
ntdll.dll!RtlCreateTagHeap+0xa7
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwWaitForSingleObject+0x15
kernel32.dll!WaitForSingleObjectEx+0x43
kernel32.dll!WaitForSingleObject+0x12
jvm.dll!_JVM_FindSignal@4+0x2979
jvm.dll!JVM_GetThreadStateNames+0x4cb06
jvm.dll!JVM_GetThreadStateNames+0x61ee4
jvm.dll!_JVM_MonitorWait@16+0x95
jvm.dll!JVM_GetThreadStateNames+0x45e35
jvm.dll!_JVM_FindSignal@4+0x62dee
jvm.dll!JVM_GetThreadStateNames+0x45ece
jvm.dll!JVM_GetThreadStateNames+0x522ea
jvm.dll!JVM_GetThreadStateNames+0x52543
jvm.dll!_JVM_InvokeMethod@16+0xb3
java.dll!_Java_sun_reflect_NativeMethodAccessorImpl_invoke0@20+0x15
jvm.dll!JVM_GetThreadStateNames+0x45902
jvm.dll!JVM_GetThreadStateNames+0x45e35
jvm.dll!_JVM_FindSignal@4+0x62dee
jvm.dll!JVM_GetThreadStateNames+0x45ece
jvm.dll!JNI_GetCreatedJavaVMs+0x6f67
jvm.dll!JNI_GetCreatedJavaVMs+0xf663
java_uno_accessbridge.dll+0x106a
java_uno_accessbridge.dll!_JNI_OnUnload@8+0x347
java_uno_accessbridge.dll!_JNI_OnUnload@8+0x3ef
tllo.dll!?Call@Link@@QBEJPAX@Z+0x13
vcllo.dll!?Call@VclEventListeners@@QBEXPAVVclSimpleEvent@@@Z+0xf4
vcllo.dll!?CallEventListeners@Window@@IAEXKPAX@Z+0xac
vcllo.dll!?ImplSetReallyVisible@Window@@QAEXXZ+0x7a
vcllo.dll!?Show@Window@@QAEXEG@Z+0x49a
ntdll.dll!RtlInitializeCriticalSection+0x3f
ntdll.dll!RtlAllocateHeap+0xac
sal3.dll!rtl_cache_free+0x159
sal3.dll!rtl_freeMemory+0x56
sal3.dll!osl_setFileTime+0x10f0
vcllo.dll!?InitVCL@@YA_NXZ+0x2fe
vcllo.dll!??4EmbeddedFontsHelper@@QAEAAV0@ABV0@@Z+0x171
soffice.bin!main+0x51
soffice.bin!main+0x229
Comment 2 V Stuart Foote 2014-04-04 17:05:53 UTC
This does not affect builds of Master or future 4.3.0 release as support for JAB based AT on Windows has been removed.

In the interim, could perhaps be addressed with a warning on the release notes for 4.2 branch to not use JRE 1.8 and JAB 2.0.4 for AT support, and as a work-around to by-pass the Java based AT by immediately activating IAccessible2 support from the "Enable experimental features" on the Tools --> Options --> Advanced panel.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.