]> source.dussan.org Git - poi.git/commitdiff
Have ExtractorFactory open OPCPackages from files in read-only mode by default, since...
authorNick Burch <nick@apache.org>
Sun, 18 Jan 2015 23:46:29 +0000 (23:46 +0000)
committerNick Burch <nick@apache.org>
Sun, 18 Jan 2015 23:46:29 +0000 (23:46 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1652877 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/extractor/ExtractorFactory.java
src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java

index fa3b03882b3cd62691a40fd37277bab554b69258..65d1e3d693847b06833c0a0c7ce6277a8e52cc80 100644 (file)
@@ -44,6 +44,7 @@ import org.apache.poi.hwpf.extractor.WordExtractor;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.openxml4j.opc.PackageAccess;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
 import org.apache.poi.poifs.filesystem.DirectoryEntry;
@@ -131,7 +132,7 @@ public class ExtractorFactory {
                 return createExtractor(new POIFSFileSystem(inp));
             }
             if(POIXMLDocument.hasOOXMLHeader(inp)) {
-                return createExtractor(OPCPackage.open(f.toString()));
+                return createExtractor(OPCPackage.open(f.toString(), PackageAccess.READ));
             }
             throw new IllegalArgumentException("Your File was neither an OLE2 file, nor an OOXML file");
         } finally {
index ba3844ae0ec4724da09e839acb955ab1afca1cc6..6f43ba126b8cf8f8488ae9c3bc01689484d19ebc 100644 (file)
@@ -195,13 +195,15 @@ public class XSSFExcelExtractor extends POIXMLTextExtractor
             
             // add textboxes
             if (includeTextBoxes){
-                XSSFDrawing drawing = sheet.createDrawingPatriarch();
-                for (XSSFShape shape : drawing.getShapes()){
-                    if (shape instanceof XSSFSimpleShape){
-                        String boxText = ((XSSFSimpleShape)shape).getText();
-                        if (boxText.length() > 0){
-                            text.append(boxText);
-                            text.append('\n');
+                XSSFDrawing drawing = sheet.getDrawingPatriarch();
+                if (drawing != null) {
+                    for (XSSFShape shape : drawing.getShapes()){
+                        if (shape instanceof XSSFSimpleShape){
+                            String boxText = ((XSSFSimpleShape)shape).getText();
+                            if (boxText.length() > 0){
+                                text.append(boxText);
+                                text.append('\n');
+                            }
                         }
                     }
                 }