You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ta...@apache.org on 2017/01/13 20:55:04 UTC

svn commit: r1778664 - /poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java

Author: tallison
Date: Fri Jan 13 20:55:04 2017
New Revision: 1778664

URL: http://svn.apache.org/viewvc?rev=1778664&view=rev
Log:
bug 60584 -- avoid NPE by checking for null/missing image in XSSFReader's getShapes().

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java?rev=1778664&r1=1778663&r2=1778664&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java Fri Jan 13 20:55:04 2017
@@ -37,6 +37,8 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
 import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
 import org.apache.poi.openxml4j.opc.PackagingURIHelper;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
 import org.apache.poi.xssf.model.CommentsTable;
 import org.apache.poi.xssf.model.SharedStringsTable;
 import org.apache.poi.xssf.model.StylesTable;
@@ -57,6 +59,9 @@ import org.openxmlformats.schemas.spread
  *  for XSSF.
  */
 public class XSSFReader {
+
+    private static final POILogger LOGGER = POILogFactory.getLogger(XSSFReader.class);
+
     private OPCPackage pkg;
     private PackagePart workbookPart;
 
@@ -318,6 +323,11 @@ public class XSSFReader {
                   PackageRelationship drawings = drawingsList.getRelationship(i);
                   PackagePartName drawingsName = PackagingURIHelper.createPartName(drawings.getTargetURI());
                   PackagePart drawingsPart = sheetPkg.getPackage().getPart(drawingsName);
+                  if (drawingsPart == null) {
+                      //parts can go missing; Excel ignores them silently -- TIKA-2134
+                      LOGGER.log(POILogger.WARN, "Missing drawing: "+drawingsName +". Skipping it.");
+                      continue;
+                  }
                   XSSFDrawing drawing = new XSSFDrawing(drawingsPart);
                   for (XSSFShape shape : drawing.getShapes()){
                       shapes.add(shape);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org