<AWT Dev> RFR: 8242174 [macos] The NestedModelessDialogTest test make the macOS unstable
Sergey.Bylokhov at oracle.com
Tue Apr 14 06:21:01 UTC 2020
Looks like a few tests for menu mnemonics started to fail intermittently after this fix, I will double-check the root cause.
On 4/13/20 8:09 am, Sergey Bylokhov wrote:
> Please review the fix for jdk/client.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8242174
> Fix: http://cr.openjdk.java.net/~serb/8242174/webrev.00
> This is part of the effort to stabilize the execution of our nightly tests. We already fix most of the
> issues in the tests which made the OS and other tests unstable for some reasons.
> And this is attempt to fix the "product" bug. I have found that some of our tests, like
> "java/awt/Dialog/NestedDialogs/Modeless/NestedModelessDialogTest.java" have the code like this:
> This should work fine, but unfortunately on macOS, such code produces "random" strange
> results, sometimes some keys are pressed but never released, sometimes the shift
> modifier is disappeared and so on. The situation is quite bad because the test itself is
> passed but leaves the modifier key pressed, this occurred in different tests and caused
> to fail some other tests around.
> Note that our code is implemented according to the official Apple's documentation, so I had
> filed a bug to Apple:
> So in this fix, I tried to follow the recommendation above. For all events(except mouse move)
> an additional delay(50 ms) is added. If the test already uses some delay then the biggest
> one will be used(the new delay will not be added to the old one)
> This new delay will solve the problem of events lost, but it does not fix the problem of disappeared
> modifiers(SHIFT/CTRL, etc). I tried different solutions and finally was able to find one suggestion
> which works fine, is to use CGEventSourceCreate(kCGEventSourceStateHIDSystemState); instead of NULL in our events:
Best regards, Sergey.
More information about the awt-dev