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

Anass Baya abaya at openjdk.org
Mon May 26 09:50:58 UTC 2025


> **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 one additional commit since the last revision:

  Reduce delay to 500
  Invoke isvisble() method under EDT

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/25184/files
  - new: https://git.openjdk.org/jdk/pull/25184/files/0e234a54..31472930

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=25184&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25184&range=01-02

  Stats: 13 lines in 1 file changed: 7 ins; 0 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/25184.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25184/head:pull/25184

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


More information about the client-libs-dev mailing list