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

NativeLibLoader fails to load libWebPaneJava.dylib when loading jfxrt.jar via OSGi

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: fx2.0.2
    • Fix Version/s: fx2.1
    • Component/s: javafx
    • Environment:

      JavaFX 2.0.2 (b08). Mac OSX Lion, JVM 1.6.0_26 (64-bit), MacBook Pro

    • Subcomponent:
      web

      Description

      java.lang.UnsatisfiedLinkError is thrown when using jfxrt.jar and binaries (.so/.dll/.dylib files) in an OSGi environment on Mac OSX. In other words, the error occurs when jfxrt.jar and binaries are loaded through MANIFEST of another jar in an OSGi container. The problem is reproduced using JavaFX 2.0.2 (b08).

      This is an OSGi-related issue because we do not see such an error when JavaFX is loaded from $CLASSPATH on Mac OSX.
      This is a Mac-specific issue because we verified that JavaFX loads works in an OSGi container on Windows and Linux.

      NativeLibLoader.loadLibraryFullPath() fails with the following exception:
      java.lang.UnsatisfiedLinkError: Invalid URL for class: bundleresource://572.fwk1196330343/com/sun/javafx/runtime/NativeLibLoader.class
      at com.sun.javafx.runtime.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:118)
      at com.sun.javafx.runtime.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:85)
      at com.sun.javafx.runtime.NativeLibLoader.loadLibrary(NativeLibLoader.java:30)
      at com.sun.webpane.platform.WebPage$1.run(WebPage.java:163)
      at com.sun.webpane.platform.WebPage$1.run(WebPage.java:125)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.webpane.platform.WebPage.<clinit>(WebPage.java:125)
      at javafx.scene.web.WebEngine.<init>(WebEngine.java:387)
      at javafx.scene.web.WebEngine.<init>(WebEngine.java:380)
      at javafx.scene.web.WebView.<init>(WebView.java:160)
      at oracle.jdevimpl.webapp.html.viewer.WebViewBrowser$5.run(WebViewBrowser.java:215)
      at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:119)

      To reproduce the error,

      (1) Download JDeveloper from:
           http://ide.us.oracle.com/download_adc/jdevadf/MAIN/nightly/JDEVADF_MAIN_GENERIC_120110.0013.6219/debug/jdevstudio.zip
           This version of JDeveloper includes/uses JavaFX 2.1.0 (b07).
      (2) Expand jdevstudio.zip to /Desktop/jdevstudio/
      (3) Open the terminal. Type the following to run JDeveloper
           /Desktop/jdevstudio/jdeveloper/jdev/bin/jdev -su -clean -J-Denable.webview=true -J-Duse.webview.on.mac=true
      (4) Download attached sampleapp.zip. Expand it and open sampleapp.jws
      (5) Double-click to open sample.jsf located under ViewController > Web Content.
      (6) Design tab should fail to open the page because of the UnsatisfiedLinkError.
      (8) java.lang.UnsatisfiedLinkError stack trace should appear in the terminal.

      Attachment:
      MANIFEST.MF: the manifest file used for loading platform-specific JavaFX jar and binaries. Note: The attached MANIFEST file is compatible with JavaFX 2.0.2.
      oracle.external.javafx.jar: the jar file that contains the MANIFEST.MF through which jfxrt.jar and JavaFX binaries are loaded. Note: The attached MANIFEST file is compatible with JavaFX 2.0.2.

        Attachments

        1. jdev.conf
          5 kB
        2. MANIFEST.MF
          12 kB
        3. oracle.external.javafx.jar
          3 kB
        4. sampleapp.zip
          91 kB

          Issue Links

            Activity

              People

              • Assignee:
                peterz Peter Zhelezniakov (Inactive)
                Reporter:
                sanghan Sangmok Han (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported: