You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alain (JIRA)" <ji...@apache.org> on 2010/09/21 16:09:33 UTC

[jira] Updated: (SANSELAN-44) JpegImageMetadata getEXIFThumbnail may raise a null pointer exception

     [ https://issues.apache.org/jira/browse/SANSELAN-44?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alain updated SANSELAN-44:
--------------------------

      Description: 
A patch has been done to read thumbnail from exif metada (see bug 38). But there is a bug if exif is null (NullpointerException):

<code>
public BufferedImage getEXIFThumbnail() throws ImageReadException, 
                        IOException { 
                ArrayList dirs = exif.getDirectories(); 
                for (int i = 0; i < dirs.size(); i++) { 
                        TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs 
                                        .get(i); 
                        // Debug.debug("dir", dir); 
                        BufferedImage image = dir.getThumbnail(); 
                        if (null != image) 
                                return image; 
                        JpegImageData jpegImageData = dir.getJpegImageData(); 
                        if(jpegImageData!=null){ 
                            ByteArrayInputStream input = new ByteArrayInputStream(jpegImageData.data); 
                            image = ImageIO.read(input); 
                            if (image!=null) 
                                return image; 
                        } 
                } 

                return null; 
        } 
</code>

This patch correct the bug:

<code>
        if (exif!= null) {
            ArrayList dirs = exifs.getDirectories();
            for (int i = 0; i < dirs.size(); i++) {
                TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs.get(i);
                // Debug.debug("dir", dir);
                BufferedImage image = dir.getThumbnail();
                if (null != image) {
                    return image;
                }
                JpegImageData jpegImageData = dir.getJpegImageData();
                if (jpegImageData != null) {
                    ByteArrayInputStream input = new ByteArrayInputStream(jpegImageData.data);
                    image = ImageIO.read(input);
                    if (image != null) {
                        return image;
                    }
                }
            }
        }
        return null;
</code>

  was:
A patch has been done to read thumbnail from exif metada (see bug 38). But there is a bug if exif is null (NullpointerException):

<code>
public BufferedImage getEXIFThumbnail() throws ImageReadException, 
                        IOException { 
                ArrayList dirs = exif.getDirectories(); 
                for (int i = 0; i < dirs.size(); i++) { 
                        TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs 
                                        .get(i); 
                        // Debug.debug("dir", dir); 
                        BufferedImage image = dir.getThumbnail(); 
                        if (null != image) 
                                return image; 
                        JpegImageData jpegImageData = dir.getJpegImageData(); 
                        if(jpegImageData!=null){ 
                            ByteArrayInputStream input = new ByteArrayInputStream(jpegImageData.data); 
                            image = ImageIO.read(input); 
                            if (image!=null) 
                                return image; 
                        } 
                } 

                return null; 
        } 
</code>

This patch correct the bug:

<code>
TiffImageMetadata exifs = jpegMetadata.getExif();
        if (exifs != null) {
            ArrayList dirs = exifs.getDirectories();
            for (int i = 0; i < dirs.size(); i++) {
                TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs.get(i);
                // Debug.debug("dir", dir);
                BufferedImage image = dir.getThumbnail();
                if (null != image) {
                    return image;
                }
                JpegImageData jpegImageData = dir.getJpegImageData();
                if (jpegImageData != null) {
                    ByteArrayInputStream input = new ByteArrayInputStream(jpegImageData.data);
                    image = ImageIO.read(input);
                    if (image != null) {
                        return image;
                    }
                }
            }
        }
        return null;
</code>

    Fix Version/s:     (was: 0.94-incubator)

> JpegImageMetadata getEXIFThumbnail may raise a null pointer exception
> ---------------------------------------------------------------------
>
>                 Key: SANSELAN-44
>                 URL: https://issues.apache.org/jira/browse/SANSELAN-44
>             Project: Commons Sanselan
>          Issue Type: Bug
>    Affects Versions: 0.94-incubator
>            Reporter: Alain
>
> A patch has been done to read thumbnail from exif metada (see bug 38). But there is a bug if exif is null (NullpointerException):
> <code>
> public BufferedImage getEXIFThumbnail() throws ImageReadException, 
>                         IOException { 
>                 ArrayList dirs = exif.getDirectories(); 
>                 for (int i = 0; i < dirs.size(); i++) { 
>                         TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs 
>                                         .get(i); 
>                         // Debug.debug("dir", dir); 
>                         BufferedImage image = dir.getThumbnail(); 
>                         if (null != image) 
>                                 return image; 
>                         JpegImageData jpegImageData = dir.getJpegImageData(); 
>                         if(jpegImageData!=null){ 
>                             ByteArrayInputStream input = new ByteArrayInputStream(jpegImageData.data); 
>                             image = ImageIO.read(input); 
>                             if (image!=null) 
>                                 return image; 
>                         } 
>                 } 
>                 return null; 
>         } 
> </code>
> This patch correct the bug:
> <code>
>         if (exif!= null) {
>             ArrayList dirs = exifs.getDirectories();
>             for (int i = 0; i < dirs.size(); i++) {
>                 TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs.get(i);
>                 // Debug.debug("dir", dir);
>                 BufferedImage image = dir.getThumbnail();
>                 if (null != image) {
>                     return image;
>                 }
>                 JpegImageData jpegImageData = dir.getJpegImageData();
>                 if (jpegImageData != null) {
>                     ByteArrayInputStream input = new ByteArrayInputStream(jpegImageData.data);
>                     image = ImageIO.read(input);
>                     if (image != null) {
>                         return image;
>                     }
>                 }
>             }
>         }
>         return null;
> </code>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.