RFR: 7001973: java/awt/Graphics2D/CopyAreaOOB.java fails

Masanori Yano myano at openjdk.java.net
Fri Sep 17 07:35:43 UTC 2021


On Mon, 13 Sep 2021 11:32:37 GMT, Masanori Yano <myano at openjdk.org> wrote:

> Could you please review the 7001973 fixes?
> 
> On Windows, CopyAreaOOB.java fails with a blank window. The cause of this problem is that paint() works one time only. Painting area is not guaranteed when showing a window.
> 
> I think this behavior should be removed for purpose of this test (`@summary: Verifies that copyArea() works properly`). Also, this program uses a Robot, but implements waiting logic by itself. This logic should be replaced to Robot API.
> 
> This fix works fine in Windows, so this test can be removed from ProblemList.txt. I don't have a Mac environment, so can someone please confirm that this fix will work on Mac?

The test checks only one time for painting "result".

I think the painting sequence depends on rendering pipeline. I collected a log the Java2D and the ComponentPeer, then multiple PaintEvent is recorded with default D3D pipeline (see below).  So, paint() should not be restrict one time.


$ /Downloads/jdk-17/bin/java -Dsun.java2d.trace=log,timestamp -Djava.util.logging.config.file=logging.properties CopyAreaOOB
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 400, height = 400
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 400, height = 400
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 0, height = 0
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 0, height = 0
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 400, height = 400
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 400, height = 400
1631860257699: D3DFillRect
1631860257732: D3DFillRect
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 400, height = 400
1631860257741: D3DFillRect
1631860257743: D3DFillRect
1631860257750: D3DFillRect
1631860257751: D3DFillRect
1631860257755: D3DFillRect
1631860257757: D3DCopyArea
Sep 17, 2021 3:30:57 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 400, height = 400
1631860257759: D3DFillRect
1631860257762: D3DFillRect
1631860257763: D3DFillRect
1631860257763: D3DFillRect
1631860257764: D3DFillRect
1631860257764: D3DCopyArea

$ /Downloads/jdk-17/bin/java -Dsun.java2d.trace=log,timestamp -Djava.util.logging.config.file=logging.properties -Duser.language=en -Dsun.java2d.noddraw CopyAreaOOB
Sep 17, 2021 3:32:10 PM sun.awt.windows.WComponentPeer coalescePaintEvent
FINEST: coalescePaintEvent: PAINT: add: x = 0, y = 0, width = 400, height = 400
1631860330225: GDIFillRect
1631860330249: GDIFillRect
1631860330254: GDIFillRect
1631860330254: GDIFillRect
1631860330255: GDICopyArea

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

PR: https://git.openjdk.java.net/jdk/pull/5491



More information about the client-libs-dev mailing list