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

JNI use results in UnsatisfiedLinkError looking for libmawt.so

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b06
    • CPU:
      generic, x86
    • OS:
      other, linux

      Backports

        Description

        FULL PRODUCT VERSION :
        java version "1.6.0"
        Java(TM) SE Runtime Environment (build 1.6.0-b105)
        Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)

        and

        java version "1.6.0_01"
        Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
        Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

        ADDITIONAL OS VERSION INFORMATION :
        Linux 2.6.9-42.0.3.EL #1 Fri Oct 6 05:59:54 CDT 2006 i686 i686 i386 GNU/Linux

        A DESCRIPTION OF THE PROBLEM :
        When running inside a custom JNI library creating an instance of any awt class fails with an UnsatisfiedLinkError for libmawt.so.

        The error was first seen with 1.6, but don't know if present in 1.5. Code which runs under 1.4.2 but will not run under 1.6.

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        Compile a C++ program which starts JNI. Inside the Java application, create a separate thread to instantiate awt classes, and then return. The first instantiation of any awt class fails with UnsatisfiedLinkError for libmawt.so.

        Build the source by typing "./build.bash" on the Linux command line. The
        example may be executed by typing "./run_oasis.bash". The "./clean.bash"
        command cleans up the directory.

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        The application's Swing-based windows would be displayed on the screen. In the testcase a blank window should be displayed on the screen
        ACTUAL -
        Custom JNI library is found, but dependent library libmawt.so is not.
        The following is output:
        csh-3.00$ ./run_oasis.bash
        callback from JNI
        JavaJNIInt: initCPP() succeeded
        JVM started in CPPJNIInt::init
        Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: Can't
        load library: /home/alink/sunbug/xawt/libmawt.so
                at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1650)
                at java.lang.Runtime.load0(Runtime.java:770)
                at java.lang.System.load(System.java:1005)
                at java.lang.ClassLoader$NativeLibrary.load(Native Method)
                at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
                at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1668)
                at java.lang.Runtime.loadLibrary0(Runtime.java:823)
                at java.lang.System.loadLibrary(System.java:1030)
                at
        sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
                at java.security.AccessController.doPrivileged(Native Method)
                at
        sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
                at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
                at java.awt.Component.<clinit>(Component.java:552)
                at JavaJNIInt.run(JavaJNIInt.java:41)
                at java.lang.Thread.run(Thread.java:619)


        ERROR MESSAGES/STACK TRACES THAT OCCUR :
        Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: Can't load library: /home/alink/alink_work3/Source/SimDesEng/exe/xawt/libmawt.so
                at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1650)
                at java.lang.Runtime.load0(Runtime.java:770)
                at java.lang.System.load(System.java:1005)
                at java.lang.ClassLoader$NativeLibrary.load(Native Method)
                at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
                at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1668)
                at java.lang.Runtime.loadLibrary0(Runtime.java:823)
                at java.lang.System.loadLibrary(System.java:1030)
                at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.awt.Toolkit.loadLibraries(Toolkit.java:1594)
                at java.awt.Toolkit.<clinit>(Toolkit.java:1616)
                at java.awt.Color.<clinit>(Color.java:263)
                at MapBuilder.<init>(MapBuilder.java:71)
                at MapGraphics.<clinit>(MapGraphics.java:26)
                at cDataInterface.<clinit>(cDataInterface.java:245)
                at JavaJNIInt.run(JavaJNIInt.java:352)
                at java.lang.Thread.run(Thread.java:619)


        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        Attached seperatly
        ---------- END SOURCE ----------

        CUSTOMER SUBMITTED WORKAROUND :
        No work around at this time, other than regressing to Java 1.4.2

        Attempted work-arounds suggested by similar problem reported in Bug 6539705 with no improvement in behaviour.

          Attachments

          1. ibm-patch-for-6571660-14371890.tar
            10 kB
            David Korbel

            Issue Links

              Activity

                People

                Assignee:
                dbuck David Buck
                Reporter:
                ndcosta Nelson Dcosta (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                11 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: