There were previous attempts to fix this on mac :
https://mail.openjdk.java.net/pipermail/awt-dev/2013-December/006719.html
https://mail.openjdk.java.net/pipermail/awt-dev/2014-January/006809.html
https://mail.openjdk.java.net/pipermail/awt-dev/2014-February/007047.html
which you reviewed. Can you comment on how the current proposal avoids
the problems raised there ?
-phil.
On 4/6/20, 12:20 AM, Sergey Bylokhov wrote:
Hello.
Please review the fix for jdk/client.
Bug: https://bugs.openjdk.java.net/browse/JDK-7185258
Fix: http://cr.openjdk.java.net/~serb/7185258/webrev.01
The Robot.waitForIdle and SunToolKit.realSync() may hang if executed
when DnD is
in progress, because they posts native events to the application and
waits when
these event will be dispatched. During DnD this events are blocked, so
every call
to waitForIdle will hang for a timeout(which is 10 seconds) per native
event check.
This may appear as a deadlock.
The similar bug was fixed on windows:
http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/7658a78a93de
Solution on macOS is similar, skips the native checks when the DnD is
in progress.