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&nbsp;2_ (the initial state) to 
>> _Button&nbsp;4_ and then back to _Button&nbsp;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&nbsp;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

Reply via email to