-
Bug
-
Resolution: Fixed
-
P2
-
8u60, 9
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8129475 | 8u60 | Kevin Rushforth | P2 | Closed | Fixed |
Our WebView unit tests are hanging on Mac when run on our Hudson test slaves, which run in headless mode. Any test that cannot run headless must be qualified by "FULL_TEST=true".
To reproduce this:
1. remotely ssh into a Mac that is not logged into the console and has no monitor or keyboard attached to it
2. Run "gradle :web:test"
3. The test suite will hang when running the first test that starts the FX runtime
The reason for the hang is that the QuantumRenderer thread gets an exception during screen initialization in headless mode, and that exception isn't propagated to the test harness.
Here is the exception that leads to the hang:
javafx.scene.web.BindingTest STANDARD_ERROR
RenderJob.run: internal exception
java.lang.ArrayIndexOutOfBoundsException: 0
at java.util.Arrays$ArrayList.get(Arrays.java:3835)
at java.util.Collections$UnmodifiableList.get(Collections.java:1369)
at com.sun.glass.ui.Screen.getMainScreen(Screen.java:61)
at com.sun.prism.sw.SWPipeline.getDefaultResourceFactory(SWPipeline.java:82)
at com.sun.prism.GraphicsPipeline.getDefaultResourceFactory(GraphicsPipeline.java:120)
at com.sun.javafx.tk.quantum.QuantumRenderer.lambda$createResourceFactory$411(QuantumRenderer.java:161)
at com.sun.javafx.tk.quantum.QuantumRenderer$$Lambda$42/1907614384.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.lang.Thread.run(Thread.java:744)
To reproduce this:
1. remotely ssh into a Mac that is not logged into the console and has no monitor or keyboard attached to it
2. Run "gradle :web:test"
3. The test suite will hang when running the first test that starts the FX runtime
The reason for the hang is that the QuantumRenderer thread gets an exception during screen initialization in headless mode, and that exception isn't propagated to the test harness.
Here is the exception that leads to the hang:
javafx.scene.web.BindingTest STANDARD_ERROR
RenderJob.run: internal exception
java.lang.ArrayIndexOutOfBoundsException: 0
at java.util.Arrays$ArrayList.get(Arrays.java:3835)
at java.util.Collections$UnmodifiableList.get(Collections.java:1369)
at com.sun.glass.ui.Screen.getMainScreen(Screen.java:61)
at com.sun.prism.sw.SWPipeline.getDefaultResourceFactory(SWPipeline.java:82)
at com.sun.prism.GraphicsPipeline.getDefaultResourceFactory(GraphicsPipeline.java:120)
at com.sun.javafx.tk.quantum.QuantumRenderer.lambda$createResourceFactory$411(QuantumRenderer.java:161)
at com.sun.javafx.tk.quantum.QuantumRenderer$$Lambda$42/1907614384.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.lang.Thread.run(Thread.java:744)
- backported by
-
JDK-8129475 [Mac] WebView unit tests hang on headless test machines
-
- Closed
-
- relates to
-
JDK-8096769 [Mac] Swing interop unit tests hangs on headless test machines
-
- Resolved
-
-
JDK-8172988 gradle :web:test should run in headless mode
-
- Resolved
-
-
JDK-8087682 Web unit test testDOMWindowAndStyleAccess gets NPE in Utils.getScreen
-
- Closed
-