On Fri, 2 Jun 2023 17:56:42 GMT, Harshitha Onkar <hon...@openjdk.org> wrote:

> ViewportOverlapping test was failing intermittently during CI runs on Win10 
> and Win11. 
> 
> Although this intermittent issue wasn't replicable when the individual test 
> as well as the test group was run multiple times, a defensive fix has been 
> applied. The fix is made to the base class -OverlappingTestBase.java, which 
> holds the common Standard Test Machinery for AWT_Mixing tests.
> 
>  `Toolkit.getDefaultToolkit().sync()` is added 
> `OverlappingTestBase.testComponent()`. I believe Thread.sleep(500) alone, 
> might not be sufficient to flush all the graphics events of this test on 
> slower systems which might be causing this test to fail intermittently during 
> CI runs.
> 
> Screenshot capture has been added to ViewportOverlapping.java to aid 
> debugging this intermittent issue, in case it should occur again. 
> 
> PS: Only relevant code in OverlappingTestBase has been cleaned-up as required 
> by this test. There are other parts of the base class that require code 
> clean-up  which is best if taken up as a separate issue as it has common code 
> across many AWT_Mixing tests.

test/jdk/java/awt/Mixing/AWT_Mixing/OverlappingTestBase.java line 496:

> 494: 
> 495:         // wait for graphic effects on systems like Win7
> 496:         Toolkit.getDefaultToolkit().sync();

The recommended way now is to use `Robot.waitForIdle` which calls 
`Toolkit.sync()` in a loop. This is what `Util.waitForIdle` does, I believe.

test/jdk/java/awt/Mixing/AWT_Mixing/OverlappingTestBase.java line 501:

> 499:         } catch (InterruptedException e) {
> 500:             e.printStackTrace();
> 501:         }

You have `robot`, so you can use `robot.delay(500)` to avoid catching the 
exception.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14289#discussion_r1214677014
PR Review Comment: https://git.openjdk.org/jdk/pull/14289#discussion_r1214677560

Reply via email to