|
Recently we tested our framework that uses ULC as the presentation layer on a machine with "Red Hat Enterprise Linux ES release 4 (Nahant Update 2)". Unfortunately, we encountered a problem with the UISession.waitForIdle method. The problem can be reproduced with the following scenario: 1) the client sends a string, representing a command, to the server using the "sendMessage" method of the UISession class
mySession.sendMessage(cmd) 2) on the server side the command is dispatched by the handleMessage method (the dispatch takes some seconds) 3) the client uses the "waitForIdle" method to be sure that the command "cmd" has been dispatched
mySession.sendMessage(cmd) mySession.waitForIdle() Here we found the problem: the "waitForIdle" methods doesn't return and the test is blocked. The test works perfectly on Red Hat 3 and Fedora core 4. The test doesn't use 2 different machines (used as client and as server), but we use the AbstractApplication class instead.
Have you ever come accross any synchronization problem with the Red Hat Enterprise Linux ES release 4 (Nahant Update 2)? Do someon have any idea on how to resolve this problem ? Thanks, Luca. This is the dump (kill -3) of the test: [exec] [junit] Full thread dump Java HotSpot(TM) Client VM (1.4.2_11-b06 mixed mode): [exec] [exec] [junit] "TimerQueue" daemon prio=1 tid=0x089067e8 nid=0x4126 in Object.wait() [0x67a43000..0x67a43228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] - waiting on <0x7551b6f0> (a javax.swing.TimerQueue) [exec] [junit] at javax.swing.TimerQueue.run(TimerQueue.java:231) [exec] [junit] - locked <0x7551b6f0> (a javax.swing.TimerQueue) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "AWT-EventQueue-1" prio=1 tid=0x08245c50 nid=0x4126 runnable [0x67e59000..0x67e5a228] [exec] [junit] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) [exec] [junit] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) [exec] [junit] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) [exec] [junit] at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) [exec] [exec] [junit] "AWT-Shutdown" prio=1 tid=0x08245a10 nid=0x4126 in Object.wait() [0x67cc8000..0x67cc8228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] - waiting on <0x74de0070> (a java.lang.Object) [exec] [junit] at java.lang.Object.wait(Object.java:429) [exec] [junit] at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) [exec] [junit] - locked <0x74de0070> (a java.lang.Object) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "OracleTimeoutPollingThread" daemon prio=1 tid=0x083206f8 nid=0x4126 waiting on condition [0x67d49000..0x67d49228] [exec] [junit] at java.lang.Thread.sleep(Native Method) [exec] [junit] at oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:161) [exec] [exec] [junit] "Cleanup Session Thread" daemon prio=1 tid=0x08927f18 nid=0x4126 waiting on condition [0x67b45000..0x67b45228] [exec] [junit] at java.lang.Thread.sleep(Native Method) [exec] [junit] at com.wuerth.phoenix.bcserver.base.SessionPool$Cleanup.run(SessionPool.java:595) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "ULC Communication Controller Thread" prio=1 tid=0x08507498 nid=0x4126 in Object.wait() [0x67bc6000..0x67bc6228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] at java.lang.Object.wait(Object.java:429) [exec] [junit] at java.awt.EventQueue.invokeAndWait(EventQueue.java:854) [exec] [junit] - locked <0x6fe11f80> (a java.awt.EventQueue$1AWTInvocationLock) [exec] [junit] at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1225) [exec] [junit] at com.ulcjava.base.client.FilteringEventQueue.waitForIdle(FilteringEventQueue.java:19) [exec] [junit] at com.ulcjava.base.client.UISession$f_.e(UISession$f_.java:0) [exec] [junit] at com.ulcjava.base.client.UISession$f_.run(UISession$f_.java:60) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "Java2D Disposer" daemon prio=1 tid=0x080be678 nid=0x4126 in Object.wait() [0x67c47000..0x67c47228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] - waiting on <0x74e415a0> (a java.lang.ref.ReferenceQueue$Lock) [exec] [junit] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) [exec] [junit] - locked <0x74e415a0> (a java.lang.ref.ReferenceQueue$Lock) [exec] [junit] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) [exec] [junit] at sun.java2d.Disposer.run(Disposer.java:100) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "AWT-Motif" daemon prio=1 tid=0x088994b8 nid=0x4126 runnable [0x67dd9000..0x67dd9228] [exec] [junit] at sun.awt.motif.MToolkit.run(Native Method) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "com.ibm.logging.ConsoleHandler:DefaultHandler" daemon prio=1 tid=0x08787388 nid=0x4126 in Object.wait() [0x6840d000..0x6840d228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] - waiting on <0x74d853b8> (a java.lang.Object) [exec] [junit] at java.lang.Object.wait(Object.java:429) [exec] [junit] at com.ibm.logging.Handler.run(Handler.java:1145) [exec] [junit] - locked <0x74d853b8> (a java.lang.Object) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "com.wuerth.phoenix.log.jlog.QueuedProxyHandlerImpl$1:QueuedHandler" daemon prio=1 tid=0x08787648 nid=0x4126 in Object.wait() [0x6848e000..0x6848e228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] - waiting on <0x74d85488> (a sun.misc.Queue) [exec] [junit] at sun.misc.Queue.dequeue(Queue.java:75) [exec] [junit] - locked <0x74d85488> (a sun.misc.Queue) [exec] [junit] at sun.misc.Queue.dequeue(Queue.java:59) [exec] [junit] at com.wuerth.phoenix.log.AbstractQueuedProxyHandler.run(AbstractQueuedProxyHandler.java:123) [exec] [junit] at java.lang.Thread.run(Thread.java:534) [exec] [exec] [junit] "Signal Dispatcher" daemon prio=1 tid=0x080abf68 nid=0x4126 runnable [0x00000000..0x00000000] [exec] [exec] [junit] "Finalizer" daemon prio=1 tid=0x08095f00 nid=0x4126 in Object.wait() [0x6f6c6000..0x6f6c6228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] - waiting on <0x74c6ba60> (a java.lang.ref.ReferenceQueue$Lock) [exec] [junit] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) [exec] [junit] - locked <0x74c6ba60> (a java.lang.ref.ReferenceQueue$Lock) [exec] [junit] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) [exec] [junit] at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) [exec] [exec] [junit] "Reference Handler" daemon prio=1 tid=0x08095358 nid=0x4126 in Object.wait() [0x6f947000..0x6f947228] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] at java.lang.Object.wait(Object.java:429) [exec] [junit] at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) [exec] [junit] - locked <0x74c6bac8> (a java.lang.ref.Reference$Lock) [exec] [exec] [junit] "main" prio=1 tid=0x0805f8a0 nid=0x4126 in Object.wait() [0xbfff9000..0xbfff9898] [exec] [junit] at java.lang.Object.wait(Native Method) [exec] [junit] at java.lang.Object.wait(Object.java:429) [exec] [junit] at java.awt.EventQueue.invokeAndWait(EventQueue.java:854) [exec] [junit] - locked <0x6fe12020> (a java.awt.EventQueue$1AWTInvocationLock) [exec] [junit] at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1225) [exec] [junit] at com.ulcjava.base.client.FilteringEventQueue.waitForIdle(FilteringEventQueue.java:19) [exec] [junit] at com.ulcjava.base.client.UISession.waitForIdle(UISession.java:188) [exec] [junit] at com.wuerth.phoenix.hephaestus.gui.ulc.ULCCommonDriver.sync(ULCCommonDriver.java:112) [exec] [junit] at com.wuerth.phoenix.hephaestus.gui.ulc.ULCCommonDriver.sendServerSideRequest(ULCCommonDriver.java:125) [exec] [junit] at com.wuerth.phoenix.hephaestus.gui.jemmy.etna.EtnaDriverImpl.startTask(EtnaDriverImpl.java:323) [exec] [junit] at com.wuerth.phoenix.test.maggie.hephaestus.EtnaTest.start(EtnaTest.java:277) [exec] [junit] at com.wuerth.phoenix.test.maggie.hephaestus.EtnaTest.setUp(EtnaTest.java:106) [exec] [junit] at junit.framework.TestCase.runBare(TestCase.java:125) [exec] [junit] at junit.framework.TestResult$1.protect(TestResult.java:106) [exec] [junit] at junit.framework.TestResult.runProtected(TestResult.java:124) [exec] [junit] at junit.framework.TestResult.run(TestResult.java:109) [exec] [junit] at junit.framework.TestCase.run(TestCase.java:118) [exec] [junit] at junit.framework.TestSuite.runTest(TestSuite.java:208) [exec] [junit] at junit.framework.TestSuite.run(TestSuite.java:203) [exec] [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:297) [exec] [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:672) [exec] [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:567) [exec] [exec] [junit] "VM Thread" prio=1 tid=0x080940f0 nid=0x4126 runnable [exec] [exec] [junit] "VM Periodic Task Thread" prio=1 tid=0x080b7cc0 nid=0x4126 waiting on condition [exec] [junit] "Suspend Checker Thread" prio=1 tid=0x080ab4e8 nid=0x4126 runnable [exec] Full thread dump Java HotSpot(TM) Server VM (1.4.2_11-b06 mixed mode): [exec] [exec] "Thread-272" daemon prio=1 tid=0x080b8240 nid=0x365e runnable [0x2c2da000..0x2c2da228] [exec] at java.io.FileInputStream.readBytes(Native Method) [exec] at java.io.FileInputStream.read(FileInputStream.java:177) [exec] at org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:90) [exec] at java.lang.Thread.run(Thread.java:534) [exec] [exec] "Thread-271" daemon prio=1 tid=0x084082e8 nid=0x365e runnable [0x2c35a000..0x2c35b228] [exec] at java.io.FileInputStream.readBytes(Native Method) [exec] at java.io.FileInputStream.read(FileInputStream.java:194) [exec] at java.io.BufferedInputStream.fill(BufferedInputStream.java:183) [exec] at java.io.BufferedInputStream.read1(BufferedInputStream.java:222) [exec] at java.io.BufferedInputStream.read(BufferedInputStream.java:277) [exec] - locked <0x2efc05f0> (a java.io.BufferedInputStream) [exec] at java.io.FilterInputStream.read(FilterInputStream.java:90) [exec] at org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:90) [exec] at java.lang.Thread.run(Thread.java:534) [exec] [exec] "process reaper" daemon prio=1 tid=0x0885d5f8 nid=0x365e runnable [0x2c3dc000..0x2c3dc228] [exec] at java.lang.UNIXProcess.waitForProcessExit(Native Method) [exec] at java.lang.UNIXProcess.access$1500(UNIXProcess.java:20) [exec] at java.lang.UNIXProcess$2.run(UNIXProcess.java:127) [exec] [exec] "Signal Dispatcher" daemon prio=1 tid=0x080c04c8 nid=0x365e waiting on condition [0x00000000..0x00000000] [exec] [exec] "Finalizer" daemon prio=1 tid=0x080bc038 nid=0x365e in Object.wait() [0x2decc000..0x2decc228] [exec] at java.lang.Object.wait(Native Method) [exec] - waiting on <0x3cb341f0> (a java.lang.ref.ReferenceQueue$Lock) [exec] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) [exec] - locked <0x3cb341f0> (a java.lang.ref.ReferenceQueue$Lock) [exec] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) [exec] at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) [exec] [exec] "Reference Handler" daemon prio=1 tid=0x080bbca8 nid=0x365e in Object.wait() [0x2df4d000..0x2df4d228] [exec] at java.lang.Object.wait(Native Method) [exec] - waiting on <0x3cb34258> (a java.lang.ref.Reference$Lock) [exec] at java.lang.Object.wait(Object.java:429) [exec] at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) [exec] - locked <0x3cb34258> (a java.lang.ref.Reference$Lock) [exec] [exec] "main" prio=1 tid=0x08058d50 nid=0x365e in Object.wait() [0xbfffa000..0xbfffcab8] [exec] at java.lang.Object.wait(Native Method) [exec] - waiting on <0x2efc0330> (a java.lang.UNIXProcess) [exec] at java.lang.Object.wait(Object.java:429) [exec] at java.lang.UNIXProcess.waitFor(UNIXProcess.java:160) [exec] - locked <0x2efc0330> (a java.lang.UNIXProcess) [exec] at org.apache.tools.ant.taskdefs.Execute.waitFor(Execute.java:539) [exec] at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:471) [exec] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:880) [exec] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:685) [exec] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1434) [exec] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:632) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:64) [exec] at net.sf.antcontrib.logic.ForEach.executeSequential(ForEach.java:178) [exec] at net.sf.antcontrib.logic.ForEach.execute(ForEach.java:254) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) [exec] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) [exec] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [exec] at org.apache.tools.ant.Task.perform(Task.java:364) [exec] at org.apache.tools.ant.Target.execute(Target.java:341) [exec] at org.apache.tools.ant.Target.performTasks(Target.java:369) [exec] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [exec] at org.apache.tools.ant.Project.executeTarget(Project.java:1185) [exec] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40) [exec] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [exec] at org.apache.tools.ant.Main.runBuild(Main.java:668) [exec] at org.apache.tools.ant.Main.startAnt(Main.java:187) [exec] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246) [exec] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67) [exec] [exec] "VM Thread" prio=1 tid=0x080bb250 nid=0x365e runnable [exec] [exec] "VM Periodic Task Thread" prio=1 tid=0x080c4998 nid=0x365e waiting on condition [exec] "Suspend Checker Thread" prio=1 tid=0x080bfae0 nid=0x365e runnable -- Würth Phoenix S.r.l. Luca Nardelli Product Development Zeus Via Kravogl 4 I-39100 Bolzano Direct: +39 0471 564176 E-Mail: mailto:[EMAIL PROTECTED] Website: http://www.wuerth-phoenix.com |
- [ULC-developer] waitForIdle doesn't returns !! Nardelli, Luca
- RE: [ULC-developer] waitForIdle doesn't returns !! Janak Mulani
