RFR: JDK-8357082 : Stabilize and add debug logs to CopyAreaOOB.java [v6]

Harshitha Onkar honkar at openjdk.org
Mon Jun 2 19:16:43 UTC 2025


On Sat, 31 May 2025 00:59:49 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

>> @mrserb 
>> 
>> Added back Toolkit.sync() and canvas capture to paint method. Although I'm not sure if I understood  _"each render frame"_ correctly.  Can you please explain? 
>> 
>> 
>>         BufferedImage capture = null;
>>         try {
>>             Thread.sleep(500);
>>             if (robot == null) robot = new Robot();
>>             Point pt1 = getLocationOnScreen();
>>             Rectangle rect = new Rectangle(pt1.x, pt1.y, 400, 400);
>>             capture = robot.createScreenCapture(rect);
>>         } catch (Exception e) {
>>             throw new RuntimeException("Problems handling Robot");
>>         }
>>         // Test pixels
>>         testRegion(capture, "green",          0,   0, 400,  10, 0xff00ff00);
>>         testRegion(capture, "original red",   0,  10,  50, 400, 0xffff0000);
>>         testRegion(capture, "background",    50,  10,  60, 400, 0xff000000);
>>         testRegion(capture, "in-between",    60,  10, 110,  20, 0xff000000);
>>         testRegion(capture, "copied red",    60,  20, 110, 400, 0xffff0000);
>>         testRegion(capture, "background",   110,  10, 400, 400, 0xff000000);
>> 
>> 
>> Isn't capture going to be the same image throughout? I'm not sure why it is passed as an extra argument to testRegion. It can be saved once as static BufferedImage var and the same can be used for testing or am I missing something?
>
>> Added back Toolkit.sync() and canvas capture to paint method. Although I'm not sure if I understood _"each render frame"_ correctly. Can you please explain?
> 
> The paint method may be invoked multiple times after the frame becomes visible, so the validation logic inside paint will be executed for each rendering data.

oh okay, although when I debug I don't see paint method being called multiple times. Probably the case when frame is resized or screen configuration changes?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25279#discussion_r2121957234


More information about the client-libs-dev mailing list