[OpenJDK 2D-Dev] [8] request for review: 4892259 GIF ImageReader does not call passComplete in IIOReadUpdateListener

Vadim Pakhnushev vadim.pakhnushev at oracle.com
Tue Nov 20 18:14:40 UTC 2012


That's right, interlaced images works as expected without the fix.
Non-interlaced images could be considered single pass but the 
documentation states that the passStarted is called when progressive 
pass started.
For examples, BMP reader doesn't call passStarted, but non-progressive 
JPEGs or PNGs do, so there is some inconsistency here.
In the internal discussion back in 2007 Chris stated that 
"IIOReadUpdateListener.processPassStarted() is only intended to be 
called for progressive (aka interlaced) images."

I've created automated regression test which checks that if the image 
was created with interlaced flag then corresponding methods are called 
and are not if the image is not interlaced.

Please review the test:


On 20.11.2012 3:47, Phil Race wrote:
> Vadim,
> So I take it that you confirmed interlaced images do *not* exhibit 
> this problem ?
> Its not obvious from the bug report that its only non-interlaced 
> images that are the issue.
> I suppose a non-interlaced image could be considered a single pass but
> I can't find anywhere that we mandated such a behaviour and it would seem
> odd for many formats to require it.
> Can we include a regression test for this fix ?
> --phil.
> On 11/19/2012 11:15 AM, Vadim Pakhnushev wrote:
>> Hi,
>> Please review a fix for bug 4892259:
>> http://bugs.sun.com/view_bug.do?bug_id=4892259
>> http://cr.openjdk.java.net/~bae/4892259/webrev.00/
>> Actually GIFImageReader should not call neither passComplete, nor 
>> passStarted for non-interlaced images in the first place.
>> So the fix is to check whether the image is interlaced or not and 
>> skip startPass method entirely in case of interlaced image.
>> passComplete is called only for interlaced images.
>> Thanks,
>> Vadim

More information about the 2d-dev mailing list