Hi,
Fix Looks good to me.
Thanks,
Ambarish
From: Manajit Halder
Sent: Friday, January 22, 2016 3:48 PM
To: Ambarish Rajeshwar Rapte; Semyon Sadetsky; [email protected]
Subject: Review request for 8075964:
java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html fails
intermittently with timeout error
Hi All,
Kindly review the fix for JDK9.
Bug:
https://bugs.openjdk.java.net/browse/JDK-8075964
Webrev:
http://cr.openjdk.java.net/~arapte/manajit/8075964/webrev.00
Issue:
Test java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html
fails intermittently with timeout error.
Fix:
The timeout error was observed on MacOS, Windows and Ubuntu. Fixed
by removing the Util.waitForIdle(robot) call from the end of the start()
method. The provided fix solves the time-out problem on all the three (MacOS,
Windows and Ubuntu) platforms.
Justification of fix:
Stack Trace of the issue:
"Attach Listener" #17 daemon prio=9 os_prio=31
tid=0x00007fbed98cd000 nid=0x470f waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"AWT-EventQueue-0" #16 prio=6 os_prio=31 tid=0x00007fbed9a2b000
nid=0x413 waiting for monitor entry [0x000000012028b000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.awt.Robot.mouseMove(Robot.java:198)
- waiting to lock <0x00000007bfbc7d80> (a java.awt.Robot)
at TitleBarDoubleClick.doTest(TitleBarDoubleClick.java:111)
at
TitleBarDoubleClick.windowActivated(TitleBarDoubleClick.java:174)
at java.awt.Window.processWindowEvent(Window.java:2077)
Cause:
Util.waitForIdle(robot) called at the end of start() method locks
the robot. Immediately after frame becomes visible and
windowActivated(WindowEvent e) event is generated. windowActivated(WindowEvent
e) calls doTest() on the event dispatcher thread. In the doTest() method,
mouseMove() call tries to lock robot which is already locked by waitForIdle()
call in start() method.
This scenario results in deadlock between two threads and the test times out.
Therefore Util.waitForIdle(robot) shouldn't be called at the end of start()
method to avoid the deadlock.
New Issue observed on Ubuntu:
The test passes on Mac OS and Windows but fails on Ubuntu due to
some other issue. For the new problem a new issue is created with link
https://bugs.openjdk.java.net/browse/JDK-8148041
Regards,
Manajit