Author: rgauss
Date: Wed May  1 17:42:52 2013
New Revision: 1478111

URL: http://svn.apache.org/r1478111
Log:
TIKA-1115: ExifHandler throws NullPointerException
   - Added check for null datetime
   - Added file exhibiting problem datetime field
   - Added unit test

Added:
    
tika/trunk/tika-parsers/src/test/resources/test-documents/testJPEG_EXIF_emptyDateTime.jpg
   (with props)
Modified:
    
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
    
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java

Modified: 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java?rev=1478111&r1=1478110&r2=1478111&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
 (original)
+++ 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
 Wed May  1 17:42:52 2013
@@ -388,11 +388,13 @@ public class ImageMetadataExtractor {
             }
             if (directory.containsTag(ExifIFD0Directory.TAG_DATETIME)) {
                 Date datetime = 
directory.getDate(ExifIFD0Directory.TAG_DATETIME);
-                String datetimeNoTimeZone = 
DATE_UNSPECIFIED_TZ.format(datetime);
-                metadata.set(TikaCoreProperties.MODIFIED, datetimeNoTimeZone);
-                // If Date/Time Original does not exist this might be creation 
date
-                if (metadata.get(TikaCoreProperties.CREATED) == null) {
-                    metadata.set(TikaCoreProperties.CREATED, 
datetimeNoTimeZone);
+                if (datetime != null) {
+                    String datetimeNoTimeZone = 
DATE_UNSPECIFIED_TZ.format(datetime);
+                    metadata.set(TikaCoreProperties.MODIFIED, 
datetimeNoTimeZone);
+                    // If Date/Time Original does not exist this might be 
creation date
+                    if (metadata.get(TikaCoreProperties.CREATED) == null) {
+                        metadata.set(TikaCoreProperties.CREATED, 
datetimeNoTimeZone);
+                    }
                 }
             }
         }

Modified: 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java?rev=1478111&r1=1478110&r2=1478111&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java
 (original)
+++ 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java
 Wed May  1 17:42:52 2013
@@ -225,4 +225,14 @@ public class JpegParserTest extends Test
        assertEquals("251", metadata.get(Metadata.IMAGE_WIDTH));
        assertEquals("384", metadata.get(Metadata.IMAGE_LENGTH));
     }
+    
+    public void testJPEGEmptyEXIFDateTime() throws Exception {
+        Metadata metadata = new Metadata();
+        metadata.set(Metadata.CONTENT_TYPE, "image/jpeg");
+        InputStream stream =
+            
getClass().getResourceAsStream("/test-documents/testJPEG_EXIF_emptyDateTime.jpg");
+        parser.parse(stream, new DefaultHandler(), metadata, new 
ParseContext());
+        assertEquals("300.0", metadata.get(TIFF.RESOLUTION_HORIZONTAL));
+        assertEquals("300.0", metadata.get(TIFF.RESOLUTION_VERTICAL));
+     }
 }

Added: 
tika/trunk/tika-parsers/src/test/resources/test-documents/testJPEG_EXIF_emptyDateTime.jpg
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/resources/test-documents/testJPEG_EXIF_emptyDateTime.jpg?rev=1478111&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
tika/trunk/tika-parsers/src/test/resources/test-documents/testJPEG_EXIF_emptyDateTime.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg


Reply via email to