Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JavaSourceGenerator never exits

420307May 18 2004
Howdy,

This actually happens with both oracle.toplink.workbench.external.api.JavaSourceGenerator and oracle.toplink.workbench.external.api.DeploymentXMLGenerator.

When running either of these to convert the .mwp file to a deployment file from the build system, the execution succeeds (i.e., the deployment XML or java source file is generated), but the process never ends. It doesn't appear to be specific to the build process as just running the command:
java -classpath "p:/classes;r:/toplink-9.0.4/toplink/config;r:/toplink-9.0.4/toplink/jlib/toplink.jar;r:/toplink-9.0.4/toplink/jlib/toplinkmw.jar;r:/toplink-9.0.4/lib/xmlparserv2.jar;r:/toplink-9.0.4/toplink/jlib/ejb.jar;p:/code" oracle.toplink.workbench.external.api.JavaSourceGenerator p:/code/com/cimsoft/lws/coreframework/OracleProject.mwp p:/code/com/cimsoft/temp.java
from the command line has the same problem. With a little decompiling and debugging, it turns out that JavaSourceGenerator.main() has actually exited, but the JVM doesn't shut down - apparently because of two TopLink threads ("Idle Listener Thread" and "Rule Checker Thread") which should've probably been set to be daemon threads. I've included the thread dump below after the main() method has finished. Anyone know if there is a workaround to this bug (I'm running WinXP, by the way)?

Thanks,
Greg.

Thread dump:
Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):

"DestroyJavaVM" prio=5 tid=0x00036260 nid=0xf9c waiting on condition [0..7fad8]

"Idle Listener Thread" prio=2 tid=0x02d7cc98 nid=0x770 waiting on condition [35cf000..35cfd8c]
at java.lang.Thread.sleep(Native Method)
at oracle.toplink.workbench.rules.IdleListenerThread.run(IdleListenerThread.java:70)

"Rule Checker Thread" prio=2 tid=0x02e1c830 nid=0xf0 waiting on condition [358f000..358fd8c]
at java.lang.Thread.sleep(Native Method)
at oracle.toplink.workbench.rules.RuleThread.run(RuleThread.java:118)

"AWT-Windows" daemon prio=7 tid=0x02c9ec10 nid=0xfc0 runnable [34ef000..34efd8c]
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

"Signal Dispatcher" daemon prio=10 tid=0x0003e808 nid=0xfb0 waiting on condition [0..0]

"Finalizer" daemon prio=9 tid=0x009bbd68 nid=0xfa8 in Object.wait() [2b5f000..2b5fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fd840> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x104fd840> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x009ba938 nid=0xfa4 in Object.wait() [2b1f000..2b1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fd8a8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x104fd8a8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=5 tid=0x009f7680 nid=0xfa0 runnable

"VM Periodic Task Thread" prio=10 tid=0x00a124a8 nid=0xfb8 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x009be090 nid=0xfac runnable
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 15 2004
Added on May 18 2004
0 comments
168 views