Operating System - Linux
1829108 Members
14279 Online
109986 Solutions
New Discussion

Java locked sun.awt.motif.MToolkit.loadSystemColors(Native Method)

 
wellesz
New Member

Java locked sun.awt.motif.MToolkit.loadSystemColors(Native Method)

I have to launch a JVM from a dynamic library installed with LD_PRELOAD to monitor some X11-Motif Widgets.

My project is rather tricky as it involves big layers like:
- X11-Motif,
- dynamic library functions table overloading
- a Java JVM launch by a JNI interface.
- the whole thing has to be triggered by a shared library forced upon the dynamic loader dld.sl with LD_PRELOAD.

The result hopefully makes it possible to control the behavior of untouchable Motif applications...

And yes, it works as expected! I know that because the whole thing works fine under Linux :o)

Now I have difficulties with HP-UX.I did my tests on:
HP-UX udgir162 B.11.00 U 9000/800 513770528

I tried with JDK 1.2, 1.3.1 and 1.4.2..., selected different library flavors (client, server/hotspot, native and green threads, PA_RISC, PA_RISC2.0 ...results are all alike :o[

= = = = = = = = = = = = = =
I can tell more if someone comes by and need more details to be able to help.

Here is my interrupted stack:
= = = = = = = = = = = = = =


LD_PRELOAD=../LD_PRELOAD/libSpy.sl \
CLASSPATH=../JAVA \
text_form
[libSpy ] XtAddCallback(text_0):
[libSpy ] observeWidget: [text_0] - observing TextField
[libSpy ] observeWidget: pname=[lineForm] wname=[text_0] closure=[0x40024e20]
[libSpy ] ...Adding background feeding work procedure:
[invoke.c ] facade_send_type_name_value: type=[TF] name=[lineForm.text_0] value=[]
[invoke.c ] facade_set_javaClassName(Facade):
[invoke.c ] get_jvm: Java classpath set to [../JAVA]
[invoke.c ] JNI_VERSION_1_2
[invoke.c ] ....option -Djava.class.path=../JAVA
[invoke.c ] ....option -Djava.library.path=../JAVA
[invoke.c ] ...JNI_CreateJavaVM done
[invoke.c ] get_javaClass: java_className=[Facade]
[invoke.c ] loadJavaMethod:(name=[facade_set_debug] args=[(I)V])
[invoke.c ] loadJavaMethod:(name=[setField] args=[(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V])
[invoke.c ] get_java_instance: "" "()V"
[invoke.c ] ...get_java_instance: getting constructor

.../...

[libSpy ] XtAddCallback(awtTextColor):
[libSpy ] observeWidget: [awtTextColor] - observing Text
[libSpy ] observeWidget: pname=[awtPanelColor] wname=[awtTextColor] closure=[0x400bf3b0]
[invoke.c ] facade_send_type_name_value: type=[TA] name=[awtPanelColor.awtTextColor] value=[]
[invoke.c ] facade_send_type_name_value: invoking Facade.setField:
[invoke.c ] ...facade_send_type_name_value waiting for java_instance...
[invoke.c ] ...facade_send_type_name_value waiting for java_instance...
[invoke.c ] ...facade_send_type_name_value waiting for java_instance...
[invoke.c ] ...facade_send_type_name_value waiting for java_instance...
.../...

[invoke.c ] ...facade_send_type_name_value waiting for java_instance...

[libSpy ]
[libSpy ] SET HOOK ON [time] from [/lib/libc.sl]:
[libSpy ] sym=2138902806
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STACK TRACE OBTAINED WITH A MANUAL INTERRUPTION (^\):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Full thread dump [Wed Dec 21 14:43:33 MET 2005] (Java HotSpot(TM) Server VM 1.4.2 1.4.2.08-050401-19:33-PA_RISC2.0 PA2.0 (aCC_AP) mixed mode):

"AWT-Motif" daemon prio=10 tid=4009dc48 nid=13 lwp_id=11758 waiting for monitor entry [0x74931000..0x749314c0]
at sun.awt.motif.MToolkit.run(Native Method)
at java.lang.Thread.run(Thread.java:534)

"Signal Dispatcher" daemon prio=10 tid=40106850 nid=7 lwp_id=11752 waiting on condition [0x00000000..0xffffffff]

"Finalizer" daemon prio=10 tid=40102ad8 nid=5 lwp_id=11750 in Object.wait() [0x7520c000..0x7520c4c0]
at java.lang.Object.wait(Native Method)
- waiting on <7bee0708> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
- locked <7bee0708> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:188)

"Reference Handler" daemon prio=10 tid=40102448 nid=4 lwp_id=11749 in Object.wait() [0x7528d000..0x7528d4c0]
at java.lang.Object.wait(Native Method)
- waiting on <7bee05f8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:120)
- locked <7bee05f8> (a java.lang.ref.Reference$Lock)

"main" prio=8 tid=4002e3c8 nid=1 lwp_id=11746 runnable [0x7f7f2000..0x7f7f15cc]
at sun.awt.motif.MToolkit.loadSystemColors(Native Method)
at java.awt.SystemColor.updateSystemColors(SystemColor.java:417)
at java.awt.SystemColor.(SystemColor.java:409)
at sun.awt.motif.MComponentPeer.pSetBackground(Native Method)
at sun.awt.motif.MPanelPeer.setBackground(MPanelPeer.java:69)
at sun.awt.motif.MComponentPeer.initialize(MComponentPeer.java:182)
at sun.awt.motif.MComponentPeer.init(MComponentPeer.java:228)
at sun.awt.motif.MWindowPeer.init(MWindowPeer.java:90)
at sun.awt.motif.MFramePeer.(MFramePeer.java:58)
at sun.awt.motif.MToolkit.createFrame(MToolkit.java:259)
at java.awt.Frame.addNotify(Frame.java:472)
- locked <7bf0d350> (a java.awt.Component$AWTTreeLock)
at java.awt.Window.show(Window.java:459)
at java.awt.Component.show(Component.java:1197)
at java.awt.Component.setVisible(Component.java:1152)
at Facade.show(Facade.java:108)
at Facade.(Facade.java:93)

"VM Thread" prio=10 tid=40101770 nid=3 lwp_id=11748 runnable

"VM Periodic Task Thread" prio=8 tid=4015a068 nid=11 lwp_id=11756 waiting on condition
"Suspend Checker Thread" prio=10 tid=401054c0 nid=6 lwp_id=11751 runnable
Quit(coredump)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -