On Thu, 9 Jan 2025 18:57:28 GMT, Damon Nguyen <dngu...@openjdk.org> wrote:
>> **Problem:** >> >> The `javax/swing/JRadioButton/ButtonGroupFocus/ButtonGroupFocusTest.java` >> test fails in CI on Linux. >> >> The focus is on _Button 2_ instead of _Button 4_. >> >> **Root cause:** >> >> The additional logging revealed, an expected `KEY_PRESS` event. The test >> uses `Robot` API to press the <kbd>Tab</kbd> key and release it. When the >> test fails, there are two `KEY_PRESS` events followed by a single >> `KEY_RELEASE` event. Because the <kbd>Tab</kbd> key is pressed twice, the >> focus moves twice: from _Button 2_ (the initial state) to >> _Button 4_ and then back to _Button 2_. >> >> **Fix:** >> >> Use `CountDownLatch`es to track whether a radio button received focus. >> Detect the case where two `KEY_PRESS` events moved focus to _Button 2_ >> and report the failure. >> >> Log focus movements and dispatched key events to facilitate failure analysis. >> >> Take a screenshot of the test frame in case of failure. >> >> These CI hosts seem to be quite slow, removing the delay added by >> `robot.setAutoDelay(100)` has reduced the number of unexpected `KEY_PRESS` >> events. This didn't affect Windows or macOS. > > test/jdk/javax/swing/JRadioButton/ButtonGroupFocus/ButtonGroupFocusTest.java > line 121: > >> 119: + "\n\t" + >> evt.getNewValue()); >> 120: } >> 121: }); > > Suggestion: > > evt -> System.out.println(evt.getPropertyName() > + "\n\t" + evt.getOldValue() > + "\n\t" + evt.getNewValue())); > > > Nit. Possible lambda replacement here. My IDE didn't suggest replacing it a lambda. Does it improve readability of the code? Perhaps, it does… by reducing the number of lines. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/22977#discussion_r1909314898