IBM Support

IV25456: JNI APPLICATION FAILS WITH JAVA.LANG.UNSATISFIEDLINKERROR WHILE LOADING LIBAWT.SO

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as fixed if next.

Error description

  • Error Message: N/A
    .
    Stack Trace: java.lang.UnsatisfiedLinkError: awt (An exception
    was pending after running JNI_OnLoad)
    at
    java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1011)
    at
    java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.jav
    a:975)
    at java.lang.System.loadLibrary(System.java:469)
    at
    sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java
    :69)
    at
    java.security.AccessController.doPrivileged(AccessController.jav
    a:202)
    at java.awt.image.ColorModel.loadLibraries(ColorModel.java:199)
    at java.awt.image.ColorModel.<clinit>(ColorModel.java:207)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    at java.awt.image.BufferedImage.<clinit>(BufferedImage.java:285)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    at
    AWTTestFlow_JavaCompute.evaluate(AWTTestFlow_JavaCompute.java:28
    )
    at
    com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbR
    untimeJavaComputeNode.java:232)
    at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
    .
    Any JNI application loaded before loading libawt.so  with
    RTLD_GLOBAL flag fail to load libawt.so .
    

Local fix

  • 1) Avoid using RTLD_GLOBAL flag while loading JNI libraries.
     2) Load libawt.so in advance before loading the application JNI
    library which uses RTLD_GLOBAL flag.
    

Problem summary

  • The problem occured as JNI application used RTLD_GLOBAL flag
    
    while loading the native libraries.
    
    Using RTLD_GLOBAL is not advisable in JNI application as it can
    cause security  exposure in JVM and it should be avoided with
    JNI application.
    
    We will consider a fall back mechanism to identify the libawt.so
    path correctly in such failure scenario in a future Java
    release.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IV25456

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    600

  • Status

    CLOSED FIN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-07-31

  • Closed date

    2014-01-10

  • Last modified date

    2014-01-10

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    IV53898

Fix information

Applicable component levels

  • R600 PSY

       UP

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3Y","label":"Java Class Libraries"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
10 January 2014