On Mon, 9 Jun 2025 18:22:20 GMT, Anass Baya <[email protected]> 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 <[email protected]>
> - No need to add bug id
>
> Co-authored-by: Abhishek Kumar <[email protected]>
> - Update test/jdk/java/awt/FileDialog/DoubleActionESC.java
>
> Co-authored-by: Abhishek Kumar <[email protected]>
> - Update test/jdk/java/awt/FileDialog/DoubleActionESC.java
>
> Co-authored-by: Abhishek Kumar <[email protected]>
> - Update test/jdk/java/awt/FileDialog/DoubleActionESC.java
>
> Co-authored-by: Abhishek Kumar <[email protected]>
> - 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