<AWT Dev> [OpenJDK 2D-Dev] [rfc]Stream doesn't reset mark in finally

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Nov 12 13:24:34 UTC 2015


Hi, Jiri.
This is a valid point, did you file a new CR for this issue?

On 09.11.15 15:45, Alexander Scherbatiy wrote:
> On 11/7/2015 11:38 AM, Jiri Vanek wrote:
>> Hello!
>>
>> Looking to imageIO.java (if this is bad thread, please redirect me!)
>
>      2d-dev alias should be also the right place to ask image related
> questions in AWT.
>
>     Thanks,
>     Alexandr.
>
>> when reading images
>> http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/javax/imageio/ImageIO.java#l543
>>
>> and ending at:
>>
>>                 // Perform mark/reset as a defensive measure
>>                 // even though plug-ins are supposed to take
>>                 // care of it.
>>                 boolean canDecode = false;
>>                 if (stream != null) {
>>                     stream.mark();
>>                 }
>>                 canDecode = spi.canDecodeInput(input);
>>                 if (stream != null) {
>>                     stream.reset();
>>                 }
>>                 return canDecode;
>>
>> I'm wondering, why  stream.reset(); is not in finaly  block:
>>
>> // Perform mark/reset as a defensive measure
>> // even though plug-ins are supposed to take
>> // care of it.
>> boolean canDecode = false;
>> if (stream != null) {
>> stream.mark();
>> }
>> try{
>>     canDecode = spi.canDecodeInput(input);
>> } finally {
>>     if (stream != null) {
>>         stream.reset();
>>     }
>> }
>> return canDecode;
>>
>>
>> Eg png and bmp decoders can are throwing IIOException when header is
>> corrutped. That pretty definitely sure killer of  stream mark stacks.
>> You yourselves write  : //Perform mark/reset as a defensive measure
>> even though plug-ins are supposed to take care of it.
>> So if densive, then try/finaly please.
>>
>> I did not check if this changed in 9 but if not....Please. This is
>> makig work on custom image plugins, for image formats which just wraps
>> another bmp/png and are expecting corrupted headers preatty hards.
>>
>>
>> J.
>


-- 
Best regards, Sergey.


More information about the awt-dev mailing list