[OpenJDK 2D-Dev] [9] request for review: 8041465: BMPImageReader read error using ImageReadParam with set sourceRectangle
Andrew Brygin
andrew.brygin at oracle.com
Wed Sep 3 12:23:32 UTC 2014
Hello,
could you please review a fix for CR 8041465?
Bug: https://bugs.openjdk.java.net/browse/JDK-8041465
Webrev: http://cr.openjdk.java.net/~bae/8041465/9/webrev.00/
The problem happens if we perform multiple read operations from
a source which is set only once. For instance, we can try to read
image in several tiles.
The root case of the problem is that we set stream position
to the start of raster data only once: when we complete
the processing of BMP header. A peculiarity of BMP format
is that raster data can be stored in reverse order, so if we
request few leading scanlines first, then we skip rest of raster
data, and subsequent read command does not copy anything to the
destination buffer, because we never re-set the stream position
to the start of bitmap.
Suggested fix just saves the bitmap's start postilion and seeks
the stream to to it each time when we read image. This change
makes the BMP reader behavior exactly same as other standard plugin
demonstrate.
Supplied regression test demonstrates the problem.
Please take a look.
Thanks,
Andrew.
More information about the 2d-dev
mailing list