Hi, Semyon.
It is a little bit strange that the coordinates which were used to create/recreate the image can produce IOOBE when we copy this image later. It seems that we have loss of precision when we divide/multiply coordinate by the scalefactor. Or probably the reason is that we use the different "round" logic when we create the image and when we copy the data? I guess that the "round" logic should be the same in both cases, but I am not sure which one should be used. It is possible to check it: if two JLightweightFrame will be created in a row and placed one after another in the container. The correct behavior is that the pixels between will not overlap or gaps will not exists(it will be better if these components will have a semi-transparent colors).

On 28.11.16 16:50, Semyon Sadetsky wrote:
Hello,

Please review fix for JDK9:

bug: https://bugs.openjdk.java.net/browse/JDK-8170387

webrev: http://cr.openjdk.java.net/~ssadetsky/8170387/webrev.00/

After the rounding the resulting rectangular area may became bigger than
the buffer image size and this will cause IOOB error during the
consequent System#arraycopy() calls. To prevent this error the updated
area is bounded to the buffer image size.

--Semyon



--
Best regards, Sergey.

Reply via email to