Bug ID: JDK-4154170 UnsatisfiedLinkError: sun.awt.motif.X11Selection and MDrawingSurfaceInfo


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)