Details
-
Bug
-
Resolution: Fixed
-
P1
-
9
Description
The fix for JDK-8066474 breaks deployment on Linux, including JCP. It also breaks all JavaFX applications. Both fail on start up when the first attempt to load any native libraries.
Here is the JavaFX failure:
$ java -jar Ensemble8.jar
Graphics Device initialization failed for : es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:221)
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:216)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:253)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:154)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:744)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:427)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.base/java.lang.Thread.run(Thread.java:844)
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
Caused by: java.lang.RuntimeException: No toolkit found
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:228)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:253)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:154)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:744)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:427)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
... 5 more
If I work around this by including $JAVA_HOME/lib/amd64 in java.library.path, the deploy code itself fails with the following:
$ java -m jdk.deploy.controlpanel/com.sun.deploy.jcp.Main
kcr@beethoven:~/javafx/9-kcr/jfx/rt-closed/toys$ cat /tmp/doa-jcp.logException in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:482)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:986)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:200)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.UnsatisfiedLinkError: com.sun.deploy.config.UnixPlatform.getEnv(Ljava/lang/String;)Ljava/lang/String;
at jdk.deploy@9-internal/com.sun.deploy.config.UnixPlatform.getEnv(Native Method)
at jdk.deploy@9-internal/com.sun.deploy.config.UnixPlatform.getSessionSpecificString(UnixPlatform.java:199)
at jdk.deploy@9-internal/com.sun.deploy.si.SingleInstanceImpl.addSingleInstanceListener(SingleInstanceImpl.java:60)
at jdk.deploy.controlpanel@9-internal/com.sun.deploy.jcp.Main.start(Main.java:42)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:932)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
... 1 more
Exception running application com.sun.deploy.jcp.Main
Here is the JavaFX failure:
$ java -jar Ensemble8.jar
Graphics Device initialization failed for : es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:221)
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:216)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:253)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:154)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:744)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:427)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.base/java.lang.Thread.run(Thread.java:844)
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
Caused by: java.lang.RuntimeException: No toolkit found
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:228)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:253)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:154)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:744)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:427)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
... 5 more
If I work around this by including $JAVA_HOME/lib/amd64 in java.library.path, the deploy code itself fails with the following:
$ java -m jdk.deploy.controlpanel/com.sun.deploy.jcp.Main
kcr@beethoven:~/javafx/9-kcr/jfx/rt-closed/toys$ cat /tmp/doa-jcp.logException in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:482)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:538)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:986)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:200)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.UnsatisfiedLinkError: com.sun.deploy.config.UnixPlatform.getEnv(Ljava/lang/String;)Ljava/lang/String;
at jdk.deploy@9-internal/com.sun.deploy.config.UnixPlatform.getEnv(Native Method)
at jdk.deploy@9-internal/com.sun.deploy.config.UnixPlatform.getSessionSpecificString(UnixPlatform.java:199)
at jdk.deploy@9-internal/com.sun.deploy.si.SingleInstanceImpl.addSingleInstanceListener(SingleInstanceImpl.java:60)
at jdk.deploy.controlpanel@9-internal/com.sun.deploy.jcp.Main.start(Main.java:42)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:932)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
... 1 more
Exception running application com.sun.deploy.jcp.Main
Attachments
Issue Links
- relates to
-
JDK-8171674 Remove JavaFX .so files from the lib/$ARCH directory on Linux
-
- Resolved
-
-
JDK-8066474 Remove the lib/$ARCH directory from Linux and Solaris images
-
- Resolved
-