Integrated: 8346581: JRadioButton/ButtonGroupFocusTest.java fails in CI on Linux

Alexey Ivanov aivanov at openjdk.org
Fri Jan 10 10:37:48 UTC 2025


On Wed, 8 Jan 2025 19:40:29 GMT, Alexey Ivanov <aivanov at 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.

This pull request has now been integrated.

Changeset: 57af52c5
Author:    Alexey Ivanov <aivanov at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/57af52c57390f6f7413b5d3ffe64921c9b83aae4
Stats:     124 lines in 1 file changed: 85 ins; 13 del; 26 mod

8346581: JRadioButton/ButtonGroupFocusTest.java fails in CI on Linux

Reviewed-by: honkar, dnguyen

-------------

PR: https://git.openjdk.org/jdk/pull/22977


More information about the client-libs-dev mailing list