Hello All,

 

Please review following fix in jdk9:

 

Bug : https://bugs.openjdk.java.net/browse/JDK-6967419

 

Webrev : http://cr.openjdk.java.net/~rchamyal/jay/6967419/webrev.00/

 

Bug : IndexOutOfBoundsException when drawing PNGs

 

Root cause : When user intentionally throws IO Exception while write is 
happening. 
                          We call ios.finish() in finally block of write_IDAT() 
which internally goes to finishChunk(). But the startPos of the chunk is still 
pointing to present IDAT chunk but flushedPos(streamPos) is pointing to end of  
IDAT chunk. 
                          So in finishChunk(), startPos will be less than 
flushedPos. This is causing IndexOutOfBoundException in stream.seek() and cache 
is not closed.

 

Solution : If IOException is thrown by user, catch the exception while write is 
happening and update startPos to streamPos. So that when seek() happens in 
finishChunk() we don't see IndexOutOfBoundsException and cache is closed 
properly.

 

Thanks,

Jay

 

Reply via email to