Name: akC57697 Date: 07/02/98 The sun.awt.motif.X11Selection and sun.awt.motif.MDrawingSurfaceInfo throw UnsatisfiedLinkError in JDK-1.2fcs-A. The example: ------------------------------8-<-------------------------------------------- public class test { public static void main(String s[]) { try { System.out.println(Class.forName("sun.awt.motif.X11Selection")); System.out.println("sun.awt.motif.X11Selection - OKAY"); } catch (Throwable e) { e.printStackTrace();} try { System.out.println(Class.forName("sun.awt.motif.MDrawingSurfaceInfo")); System.out.println("sun.awt.motif.MDrawingSurfaceInfo - OKAY"); } catch (Throwable e) { e.printStackTrace();} } } ---------------------------->-8---------------------------------------------- java -fullversion java full version "JDK-1.2fcs-A" (###@###.###): javac test.java (###@###.###): java test java.lang.UnsatisfiedLinkError: initIDs at sun.awt.motif.X11Selection.<clinit>(X11Selection.java:43) at java.lang.Class.forName(Native Method) at java.lang.Class.forName(Compiled Code) at test.main(Compiled Code) java.lang.UnsatisfiedLinkError: initIDs at sun.awt.motif.MDrawingSurfaceInfo.<clinit>(MDrawingSurfaceInfo.java:40) at java.lang.Class.forName(Native Method) at java.lang.Class.forName(Compiled Code) at test.main(Compiled Code) ====================================================================== ###@###.### 1998-10-12 : Yes, this bug not reproducible if initialize the AWT via the creation new Frame and making it visible as recommended above but the test gets SEGV if only create a Frame object. 1. No 'new Frame()' invokation UnsatisfiedLinkError 2. Only 'new Frame()' invokation SEGV 3. new Frame() + setVisible(true) OKAY ---------------------------------------------------------------------------- public class Test { public static void main(String s[]) { java.awt.Frame f = new java.awt.Frame(); // Add f.setVisible(true) to pass try { System.out.println(Class.forName("sun.awt.motif.X11Selection")); System.out.println("sun.awt.motif.X11Selection - OKAY"); } catch (Throwable e) { e.printStackTrace();} try { System.out.println(Class.forName("sun.awt.motif.MDrawingSurfaceInfo")); System.out.println("sun.awt.motif.MDrawingSurfaceInfo - OKAY"); } catch (Throwable e) { e.printStackTrace();} } } ---------------------------------------------------------------------------- (###@###.###): java -fullversion java full version "JDK-1.2fcs-N" (###@###.###): java Test SIGSEGV 11* segmentation violation si_signo [11]: SIGSEGV 11* segmentation violation si_errno [0]: Error 0 si_code [1]: SEGV_MAPERR [addr: 0x0] stackpointer=efffb930 Full thread dump Classic VM (JDK-1.2fcs-N, green threads): "Finalizer" (TID:0xebc98320, sys_thread_t:0x69a58, state:CW) prio=8 at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(Compiled Code) at java.lang.ref.ReferenceQueue.remove(Compiled Code) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174) "Reference Handler" (TID:0xebc983b0, sys_thread_t:0x65120, state:CW) prio=10 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Compiled Code) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114) "Signal dispatcher" (TID:0xebc983e0, sys_thread_t:0x5e860, state:CW) prio=5 "main" (TID:0xebc981e0, sys_thread_t:0x266a8, state:R) prio=5 at sun.awt.motif.X11Selection.init(Native Method) at sun.awt.motif.X11Selection.<clinit>(X11Selection.java:44) at java.lang.Class.forName(Native Method) at java.lang.Class.forName(Compiled Code) at Test.main(Compiled Code) Monitor Cache Dump: java.lang.ref.ReferenceQueue$Lock@EBC98338/EBCCE028: <unowned> Waiting to be notified: "Finalizer" (0x69a58) java.lang.ref.Reference$Lock@EBC983C0/EBCCDB20: <unowned> Waiting to be notified: "Reference Handler" (0x65120) Registered Monitor Dump: PCMap lock: <unowned> utf8 hash table: <unowned> JNI pinning lock: <unowned> JNI global reference lock: <unowned> BinClass lock: <unowned> Class linking lock: <unowned> System class loader lock: <unowned> Code rewrite lock: <unowned> Heap lock: <unowned> Monitor cache lock: owner "main" (0x266a8) 1 entry Dynamic loading lock: <unowned> Monitor IO lock: <unowned> User signal monitor: <unowned> Waiting to be notified: "Signal dispatcher" (0x5e860) Child death monitor: <unowned> I/O monitor: <unowned> Alarm monitor: <unowned> Waiting to be notified: <unknown thread> (0x2b998) Thread queue lock: owner "main" (0x266a8) 1 entry Monitor registry: owner "main" (0x266a8) 1 entry SIGABRT 6* abort (generated by abort(3) routine) si_signo [6]: SIGABRT 6* abort (generated by abort(3) routine) si_errno [0]: Error 0 si_code [0]: SI_USER [pid: 3356, uid: 302] stackpointer=efffb930 Full thread dump Classic VM (JDK-1.2fcs-N, green threads): "Finalizer" (TID:0xebc98320, sys_thread_t:0x69a58, state:CW) prio=8 at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(Compiled Code) at java.lang.ref.ReferenceQueue.remove(Compiled Code) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174) "Reference Handler" (TID:0xebc983b0, sys_thread_t:0x65120, state:CW) prio=10 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Compiled Code) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114) "Signal dispatcher" (TID:0xebc983e0, sys_thread_t:0x5e860, state:CW) prio=5 "main" (TID:0xebc981e0, sys_thread_t:0x266a8, state:R) prio=5 at sun.awt.motif.X11Selection.init(Native Method) at sun.awt.motif.X11Selection.<clinit>(X11Selection.java:44) at java.lang.Class.forName(Native Method) at java.lang.Class.forName(Compiled Code) at Test.main(Compiled Code) Monitor Cache Dump: java.lang.ref.ReferenceQueue$Lock@EBC98338/EBCCE028: <unowned> Waiting to be notified: "Finalizer" (0x69a58) java.lang.ref.Reference$Lock@EBC983C0/EBCCDB20: <unowned> Waiting to be notified: "Reference Handler" (0x65120) Registered Monitor Dump: PCMap lock: <unowned> utf8 hash table: <unowned> JNI pinning lock: <unowned> JNI global reference lock: <unowned> BinClass lock: <unowned> Class linking lock: <unowned> System class loader lock: <unowned> Code rewrite lock: <unowned> Heap lock: <unowned> Monitor cache lock: owner "main" (0x266a8) 1 entry Dynamic loading lock: <unowned> Monitor IO lock: <unowned> User signal monitor: <unowned> Waiting to be notified: "Signal dispatcher" (0x5e860) Child death monitor: <unowned> I/O monitor: <unowned> Alarm monitor: <unowned> Waiting to be notified: <unknown thread> (0x2b998) Thread queue lock: owner "main" (0x266a8) 1 entry Monitor registry: owner "main" (0x266a8) 1 entry Abort (core dumped)