Author: maxcom
Date: Mon Sep 12 11:48:00 2011
New Revision: 1169702

URL: http://svn.apache.org/viewvc?rev=1169702&view=rev
Log:
PPT: avoid NPE when OLEShape.getObjectData() is null (see POI bug#51771). Patch 
by Yegor Kozlov

Modified:
    
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java

Modified: 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java?rev=1169702&r1=1169701&r2=1169702&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java
 (original)
+++ 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java
 Mon Sep 12 11:48:00 2011
@@ -21,6 +21,7 @@ import java.util.List;
 
 import org.apache.poi.hslf.extractor.PowerPointExtractor;
 import org.apache.poi.hslf.model.OLEShape;
+import org.apache.poi.hslf.usermodel.ObjectData;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.TikaInputStream;
@@ -42,18 +43,21 @@ public class HSLFExtractor extends Abstr
 
         List<OLEShape> shapeList = powerPointExtractor.getOLEShapes();
         for (OLEShape shape : shapeList) {
-            TikaInputStream stream =
-                TikaInputStream.get(shape.getObjectData().getData());
-            try {
-                String mediaType = null;
-                if ("Excel.Chart.8".equals(shape.getProgID())) {
-                    mediaType = "application/vnd.ms-excel";
+            ObjectData data = shape.getObjectData();
+            if(data != null) {
+                TikaInputStream stream =
+                    TikaInputStream.get(data.getData());
+                try {
+                    String mediaType = null;
+                    if ("Excel.Chart.8".equals(shape.getProgID())) {
+                        mediaType = "application/vnd.ms-excel";
+                    }
+                    handleEmbeddedResource(
+                            stream, Integer.toString(shape.getObjectID()),
+                            mediaType, xhtml, false);
+                } finally {
+                    stream.close();
                 }
-                handleEmbeddedResource(
-                        stream, Integer.toString(shape.getObjectID()),
-                        mediaType, xhtml, false);
-            } finally {
-                stream.close();
             }
         }
     }


Reply via email to