RFR: 8355478: DoubleActionESC.java fails intermittently [v8]

Alexey Ivanov aivanov at openjdk.org
Mon Jun 30 18:31:43 UTC 2025


On Mon, 9 Jun 2025 18:22:20 GMT, Anass Baya <abaya at openjdk.org> wrote:

>> **Analysis :**
>> 
>> Whether the test passes on the main line or fails, the behavior is still incorrect.
>> This test is meant to ensure that pressing ESC a second time while the file dialog is open behaves correctly.
>> 
>> However, the CountDownLatch is currently set to 1, which means the test only waits for the first open/close interaction to complete. As a result, it does not wait for the second attempt (opening the dialog again and pressing ESC to close it), because the latch reaches zero after the first attempt.
>> 
>> This causes the test to proceed immediately to the validation step:
>> 
>> if (fd.isVisible()) {
>>     throw new RuntimeException("File Dialog is not closed");
>> }
>> 
>> At this point, whether the test passes or fails becomes unreliable and undefined, as it depends on the state of the second attempt (whether the file dialog is in the process of opening, being closed, or hasn't even started yet)
>> 
>> To ensure the test behaves correctly, the CountDownLatch should be set to 2, so it waits for the two attempt of open-close interactions to be completed before moving on to validation.
>> 
>> **Proposed fix:**
>> 
>> set the CountDownLatch to 2
>> 
>> **Proposed enhancements :**
>> 
>> Remove unnecessary threads (Thread and Thread-2)
>> Properly handle delays and robot.waitForIdle()
>> Avoid indefinite blocking on latch.await()
>> 
>> With these enhancements, the test execution time is reduced from around 3 minutes to approximately 1 minute 30 seconds
>> 
>> The adapted test uncovered a new bug in GTKFileDialog on Linux, which is being tracked under [JDK-8356981](https://bugs.openjdk.org/browse/JDK-8356981). As a result, it has been added to the ProblemList. See [JDK-8356981](https://bugs.openjdk.org/browse/JDK-8356981) for more details
>
> Anass Baya has updated the pull request incrementally with six additional commits since the last revision:
> 
>  - The  bug id is not needed
>    
>    Co-authored-by: Abhishek Kumar <abhishek.cx.kumar at oracle.com>
>  - No need to add bug id
>    
>    Co-authored-by: Abhishek Kumar <abhishek.cx.kumar at oracle.com>
>  - Update test/jdk/java/awt/FileDialog/DoubleActionESC.java
>    
>    Co-authored-by: Abhishek Kumar <abhishek.cx.kumar at oracle.com>
>  - Update test/jdk/java/awt/FileDialog/DoubleActionESC.java
>    
>    Co-authored-by: Abhishek Kumar <abhishek.cx.kumar at oracle.com>
>  - Update test/jdk/java/awt/FileDialog/DoubleActionESC.java
>    
>    Co-authored-by: Abhishek Kumar <abhishek.cx.kumar at oracle.com>
>  - Increased the latch timeout to ensure the test doesn't fail incorrectly.

Changes requested by aivanov (Reviewer).

test/jdk/java/awt/FileDialog/DoubleActionESC.java line 41:

> 39: /*
> 40:  * @test
> 41:  * @bug 5097243

Add another `@run` to this test instead of creating a new one.


 * @key headful
 * @run main DoubleActionESC
 * @run main/othervm -Dsun.awt.disableGtkFileDialogs=true DoubleActionESC
 * ```

test/jdk/java/awt/FileDialog/DoubleActionESCWithGtkDisabled.java line 37:

> 35:         DoubleActionESC.main(args);
> 36:     }
> 37: }

A file should end with `\n` to avoid this error.

No need to create another test, just add another `@run` into existing test.

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

PR Review: https://git.openjdk.org/jdk/pull/25184#pullrequestreview-2972239652
PR Review Comment: https://git.openjdk.org/jdk/pull/25184#discussion_r2175656286
PR Review Comment: https://git.openjdk.org/jdk/pull/25184#discussion_r2175654225


More information about the client-libs-dev mailing list