Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8171450

JavaFX native libraries are no longer loaded after fix for JDK-8066474

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P1
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: javafx

      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

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                kcr Kevin Rushforth
                Reporter:
                kcr Kevin Rushforth
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: