Hi, Prahalad.
Not an expert here, but have a small question about implementation of
this method in the parent class(ComponentSampleModel).
Currently the parent class has a similar implementation of
createDataBuffer(), but instead of "scanlineStride * height" it uses
"getBufferSize()". And this "getBufferSize" has a number of additional
checks, should not we do something similar here as well(see JDK-7058602)?
On 04/01/2018 21:30, Prahalad Kumar Narayanan wrote:
Request your time to review the fix for the bug:
JDK-8194489 Incorrect size computation at BandedSampleModel .
createDataBuffer
Root Cause:
. The method BandedSampleModel . createDataBuffer does not consider number of
banks and band offsets while computing the required memory size.
. As a result, ArrayIndexOutOfBounds exception is thrown when setting pixel
values on banded sample models having -
. Multiple bands of image data stored in multiple banks of DataBuffer
with band offsets
. Multiple bands of image data stored in single bank of DataBuffer
Solution:
. Appropriate logic has been added to createDataBuffer method.
Other Info:
. All Jtreg test-cases in java/awt/image were run with the build including the
fix.
. No regressions were noticed.
Kindly review the changes at your convenience & share your feedback.
Link: http://cr.openjdk.java.net/~pnarayanan/8194489/webrev.00/
Thank you for your time in review
Have a good day
Prahalad N.
--
Best regards, Sergey.