-
Bug
-
Resolution: Incomplete
-
P4
-
None
-
jfx11
-
x86_64
-
generic
ADDITIONAL SYSTEM INFORMATION :
Happens on any OS
A DESCRIPTION OF THE PROBLEM :
Even with Java 11+ the usage of the module path is not a must.
While JavaFX 11+ has some limitations and need workarounds (https://bugs.openjdk.java.net/browse/JDK-8248122) to be executed as part of the classpath it is still possible.
Some distributions (Bellsoft Liberica or Azul Zulu) even provide OpenJDK based build with a bundled JavaFX that is on the classpath by default.
In general Java allows to add JARs at runtime (see java.net.URLClassLoader). When doiung this with the WebView specific Jars of JavaFX the described bug happens:
After dynamically adding JavaFX WebView Jars to the classpath and displaying a WebView the complete app crashes without an exception.
This is based on a pointer issue in native code.
The following text is an excerpt of the crash file on MacOS:
Process: java [80553]
Path: /Users/USER/*/java
Identifier: net.java.openjdk.cmd
Version: 1.0 (1.0)
Code Type: X86-64 (Native)
Parent Process: java [80510]
User ID: 501
Date/Time: 2020-07-31 14:17:23.513 +0200
OS Version: Mac OS X 10.15.5 (19F101)
Report Version: 12
Bridge OS Version: 3.0 (14Y908)
Anonymous UUID: 6680E7C4-44F2-9D95-FFB8-E713FC6CEBDF
Sleep/Wake UUID: D407941F-41AC-4F27-89FB-B782119DCFFD
Time Awake Since Boot: 1000000 seconds
Time Since Wake: 4500 seconds
System Integrity Protection: enabled
Crashed Thread: 19 Dispatch queue: org.webkit.DataURLDecoder
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_INVALID_ADDRESS at 0x00007fd4bb879fe4
Exception Note: EXC_CORPSE_NOTIFY
VM Regions Near 0x7fd4bb879fe4:
Stack 000070000daa9000-000070000dba7000 [ 1016K] rw-/rwx SM=COW thread 52
-->
MALLOC_TINY 00007fd5cbc00000-00007fd5cbd00000 [ 1024K] rw-/rwx SM=PRV
Application Specific Information:
abort() called
....
Thread 19 Crashed:: Dispatch queue: org.webkit.DataURLDecoder
0 libsystem_kernel.dylib
0x00007fff71d6933a __pthread_kill + 10
1 libsystem_pthread.dylib
0x00007fff71e25e60 pthread_kill + 430
2 libsystem_c.dylib
0x00007fff71cf0808 abort + 120
3 libjvm.dylib
0x00000001105f1fe6 os::abort(bool, void*, void const*) + 22
4 libjvm.dylib
0x00000001107416cb VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long) + 2889
5 libjvm.dylib
0x0000000110740b5d VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*, char const*, ...) + 155
6 libjvm.dylib
0x00000001107417a1 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*) + 33
7 libjvm.dylib
0x00000001105f5ea5 JVM_handle_bsd_signal + 754
8 libjvm.dylib
0x00000001105f3a40 signalHandler(int, __siginfo*, void*) + 45
9 libsystem_platform.dylib
0x00007fff71e1a5fd _sigtramp + 29
10 ???
0x0000000134055270 0 + 5167731312
11 libjvm.dylib
0x000000011070e599 oopDesc* RawAccessBarrier<1097844ull>::oop_load<oopDesc*>(void*) + 9
12 libjvm.dylib
0x000000011070e60b oopDesc* G1BarrierSet::AccessBarrier<1097844ull, G1BarrierSet>::oop_load_not_in_heap<oopDesc*>(oopDesc**) + 11
13 libjvm.dylib
0x00000001103d4cb2 get_method_id(JNIEnv_*, _jclass*, char const*, char const*, bool, Thread*) + 142
14 libjvm.dylib
0x00000001103d4f47 jni_GetStaticMethodID + 234
15 libjfxwebkit.dylib
0x000000019909f26c WTF::scheduleDispatchFunctionsOnMainThread() + 412
16 libjfxwebkit.dylib
0x0000000198b24339 WTF::Function<void ()>::CallableWrapper<WebCore::DataURLDecoder::decode(WTF::URL const&, WebCore::DataURLDecoder::ScheduleContext const&, WTF::Function<void (WTF::Optional<WebCore::DataURLDecoder::Result>)>&&)::$_0>::call() + 889
17 libjfxwebkit.dylib
0x00000001990a12f8 WTF::BlockPtr<void ()> WTF::BlockPtr<void ()>::fromCallable<WTF::WorkQueue::dispatch(WTF::Function<void ()>&&)::$_0>(WTF::WorkQueue::dispatch(WTF::Function<void ()>&&)::$_0)::'lambda'(void*)::__invoke(void*) + 72
18 libdispatch.dylib
0x00007fff71bc76c4 _dispatch_call_block_and_release + 12
19 libdispatch.dylib
0x00007fff71bc8658 _dispatch_client_callout + 8
20 libdispatch.dylib
0x00007fff71bcdc44 _dispatch_lane_serial_drain + 597
21 libdispatch.dylib
0x00007fff71bce5d6 _dispatch_lane_invoke + 363
22 libdispatch.dylib
0x00007fff71bd7c09 _dispatch_workloop_worker_thread + 596
23 libsystem_pthread.dylib
0x00007fff71e22a3d _pthread_wqthread + 290
24 libsystem_pthread.dylib
0x00007fff71e21b77 start_wqthread + 15
The following issues are mention the problem and contain additional information:
https://github.com/javafxports/openjdk-jfx/issues/316#issuecomment-457912843
https://github.com/karakun/OpenWebStart/issues/125
REGRESSION : Last worked in version 8u261
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Add the JavaFX jars dynamically to a running application and open the WebView
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
WebView is displayed
ACTUAL -
Application crash
FREQUENCY : always
Happens on any OS
A DESCRIPTION OF THE PROBLEM :
Even with Java 11+ the usage of the module path is not a must.
While JavaFX 11+ has some limitations and need workarounds (https://bugs.openjdk.java.net/browse/JDK-8248122) to be executed as part of the classpath it is still possible.
Some distributions (Bellsoft Liberica or Azul Zulu) even provide OpenJDK based build with a bundled JavaFX that is on the classpath by default.
In general Java allows to add JARs at runtime (see java.net.URLClassLoader). When doiung this with the WebView specific Jars of JavaFX the described bug happens:
After dynamically adding JavaFX WebView Jars to the classpath and displaying a WebView the complete app crashes without an exception.
This is based on a pointer issue in native code.
The following text is an excerpt of the crash file on MacOS:
Process: java [80553]
Path: /Users/USER/*/java
Identifier: net.java.openjdk.cmd
Version: 1.0 (1.0)
Code Type: X86-64 (Native)
Parent Process: java [80510]
User ID: 501
Date/Time: 2020-07-31 14:17:23.513 +0200
OS Version: Mac OS X 10.15.5 (19F101)
Report Version: 12
Bridge OS Version: 3.0 (14Y908)
Anonymous UUID: 6680E7C4-44F2-9D95-FFB8-E713FC6CEBDF
Sleep/Wake UUID: D407941F-41AC-4F27-89FB-B782119DCFFD
Time Awake Since Boot: 1000000 seconds
Time Since Wake: 4500 seconds
System Integrity Protection: enabled
Crashed Thread: 19 Dispatch queue: org.webkit.DataURLDecoder
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_INVALID_ADDRESS at 0x00007fd4bb879fe4
Exception Note: EXC_CORPSE_NOTIFY
VM Regions Near 0x7fd4bb879fe4:
Stack 000070000daa9000-000070000dba7000 [ 1016K] rw-/rwx SM=COW thread 52
-->
MALLOC_TINY 00007fd5cbc00000-00007fd5cbd00000 [ 1024K] rw-/rwx SM=PRV
Application Specific Information:
abort() called
....
Thread 19 Crashed:: Dispatch queue: org.webkit.DataURLDecoder
0 libsystem_kernel.dylib
0x00007fff71d6933a __pthread_kill + 10
1 libsystem_pthread.dylib
0x00007fff71e25e60 pthread_kill + 430
2 libsystem_c.dylib
0x00007fff71cf0808 abort + 120
3 libjvm.dylib
0x00000001105f1fe6 os::abort(bool, void*, void const*) + 22
4 libjvm.dylib
0x00000001107416cb VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long) + 2889
5 libjvm.dylib
0x0000000110740b5d VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*, char const*, ...) + 155
6 libjvm.dylib
0x00000001107417a1 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*) + 33
7 libjvm.dylib
0x00000001105f5ea5 JVM_handle_bsd_signal + 754
8 libjvm.dylib
0x00000001105f3a40 signalHandler(int, __siginfo*, void*) + 45
9 libsystem_platform.dylib
0x00007fff71e1a5fd _sigtramp + 29
10 ???
0x0000000134055270 0 + 5167731312
11 libjvm.dylib
0x000000011070e599 oopDesc* RawAccessBarrier<1097844ull>::oop_load<oopDesc*>(void*) + 9
12 libjvm.dylib
0x000000011070e60b oopDesc* G1BarrierSet::AccessBarrier<1097844ull, G1BarrierSet>::oop_load_not_in_heap<oopDesc*>(oopDesc**) + 11
13 libjvm.dylib
0x00000001103d4cb2 get_method_id(JNIEnv_*, _jclass*, char const*, char const*, bool, Thread*) + 142
14 libjvm.dylib
0x00000001103d4f47 jni_GetStaticMethodID + 234
15 libjfxwebkit.dylib
0x000000019909f26c WTF::scheduleDispatchFunctionsOnMainThread() + 412
16 libjfxwebkit.dylib
0x0000000198b24339 WTF::Function<void ()>::CallableWrapper<WebCore::DataURLDecoder::decode(WTF::URL const&, WebCore::DataURLDecoder::ScheduleContext const&, WTF::Function<void (WTF::Optional<WebCore::DataURLDecoder::Result>)>&&)::$_0>::call() + 889
17 libjfxwebkit.dylib
0x00000001990a12f8 WTF::BlockPtr<void ()> WTF::BlockPtr<void ()>::fromCallable<WTF::WorkQueue::dispatch(WTF::Function<void ()>&&)::$_0>(WTF::WorkQueue::dispatch(WTF::Function<void ()>&&)::$_0)::'lambda'(void*)::__invoke(void*) + 72
18 libdispatch.dylib
0x00007fff71bc76c4 _dispatch_call_block_and_release + 12
19 libdispatch.dylib
0x00007fff71bc8658 _dispatch_client_callout + 8
20 libdispatch.dylib
0x00007fff71bcdc44 _dispatch_lane_serial_drain + 597
21 libdispatch.dylib
0x00007fff71bce5d6 _dispatch_lane_invoke + 363
22 libdispatch.dylib
0x00007fff71bd7c09 _dispatch_workloop_worker_thread + 596
23 libsystem_pthread.dylib
0x00007fff71e22a3d _pthread_wqthread + 290
24 libsystem_pthread.dylib
0x00007fff71e21b77 start_wqthread + 15
The following issues are mention the problem and contain additional information:
https://github.com/javafxports/openjdk-jfx/issues/316#issuecomment-457912843
https://github.com/karakun/OpenWebStart/issues/125
REGRESSION : Last worked in version 8u261
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Add the JavaFX jars dynamically to a running application and open the WebView
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
WebView is displayed
ACTUAL -
Application crash
FREQUENCY : always