[ 
https://issues.apache.org/jira/browse/SANSELAN-53?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13058042#comment-13058042
 ] 

Dominic Early commented on SANSELAN-53:
---------------------------------------

Below is the output from running the attached SanselanTest.java application 
with the two attached .JPG files.  Observe that javax.imageio libraries are 
able to return the correct dimensions but the Sanselan calls result in a 
throwable:



Processsing file [NegativeArraySizeException.jpg]
javax.imageio Dimensions: {width=640.0,height=480.0}
Throwable occurred while processing file [NegativeArraySizeException.jpg]
java.lang.NegativeArraySizeException
        at 
org.apache.sanselan.formats.tiff.fieldtypes.FieldType.getRawBytes(FieldType.java:77)
        at 
org.apache.sanselan.formats.tiff.fieldtypes.FieldTypeUnknown.getSimpleValue(FieldTypeUnknown.java:42)
        at 
org.apache.sanselan.formats.tiff.constants.TagInfo.getValue(TagInfo.java:98)
        at 
org.apache.sanselan.formats.tiff.constants.TagInfo$Unknown.getValue(TagInfo.java:443)
        at 
org.apache.sanselan.formats.tiff.TiffField.getValue(TiffField.java:577)
        at 
org.apache.sanselan.formats.tiff.TiffField.getValueDescription(TiffField.java:317)
        at 
org.apache.sanselan.formats.tiff.TiffImageMetadata$Item.<init>(TiffImageMetadata.java:193)
        at 
org.apache.sanselan.formats.tiff.TiffImageMetadata$Directory.add(TiffImageMetadata.java:65)
        at 
org.apache.sanselan.formats.tiff.TiffImageParser.getMetadata(TiffImageParser.java:143)
        at org.apache.sanselan.ImageParser.getMetadata(ImageParser.java:81)
        at 
org.apache.sanselan.formats.jpeg.JpegImageParser.getExifMetadata(JpegImageParser.java:366)
        at 
org.apache.sanselan.formats.jpeg.JpegImageParser.getMetadata(JpegImageParser.java:307)
        at 
org.apache.sanselan.formats.jpeg.JpegImageParser.getImageInfo(JpegImageParser.java:729)
        at org.apache.sanselan.Sanselan.getImageInfo(Sanselan.java:589)
        at org.apache.sanselan.Sanselan.getImageInfo(Sanselan.java:563)
        at org.apache.sanselan.Sanselan.getImageInfo(Sanselan.java:582)
        at SanselanTest.main(SanselanTest.java:67)
Processsing file [OutOfMemoryError.jpg]
javax.imageio Dimensions: {width=640.0,height=480.0}
Throwable occurred while processing file [OutOfMemoryError.jpg]
java.lang.OutOfMemoryError: Java heap space

> Bug in Sanselan.getImageInfo(File) with certain JPEGs causing 
> java.lang.OutOfMemoryError or java.lang.NegativeArraySizeException
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SANSELAN-53
>                 URL: https://issues.apache.org/jira/browse/SANSELAN-53
>             Project: Commons Sanselan
>          Issue Type: Bug
>    Affects Versions: 0.94-incubator
>         Environment: Windows, Unix
> Sun Java JVM (multiple versions)
>            Reporter: Dominic Early
>         Attachments: NegativeArraySizeException.jpg, OutOfMemoryError.jpg, 
> SanselanTest.java, SanselanTest.java
>
>
> In order to extract JPEG image dimensions, Apache Commons Sanselan (0.97) was 
> used as follows:
>   File imgfile = new File("./test.jpg");
>   org.apache.sanselan.Sanselan.getImageInfo(imgfile);
> For most JPEG images, this code works as expected.  However with specific 
> JPEG files, the call to getImageInfo() causes a repeatable 
> java.lang.OutOfMemoryError or java.lang.NegativeArraySizeException - 
> depending upon the input JPEG file.  The same files can be processed with 
> javax.imageio.ImageReader without such issues.
> The OutOfMemoryError is especially serious as it may cause JVM to fail.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to