]> source.dussan.org Git - poi.git/commitdiff
Push all the zip opening logic into ZipHelper
authorNick Burch <nick@apache.org>
Tue, 15 Mar 2016 12:03:30 +0000 (12:03 +0000)
committerNick Burch <nick@apache.org>
Tue, 15 Mar 2016 12:03:30 +0000 (12:03 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1735064 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java
src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipHelper.java

index ce6d26af829c1f5286af7f6264d9fd754cf8c3f1..549d2e576ffddfa8931d0fe27b3bbdb215e15f62 100644 (file)
@@ -24,7 +24,6 @@ import java.io.OutputStream;
 import java.util.Enumeration;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -42,7 +41,6 @@ import org.apache.poi.openxml4j.opc.internal.marshallers.ZipPartMarshaller;
 import org.apache.poi.openxml4j.util.ZipEntrySource;
 import org.apache.poi.openxml4j.util.ZipFileZipEntrySource;
 import org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource;
-import org.apache.poi.openxml4j.util.ZipSecureFile;
 import org.apache.poi.openxml4j.util.ZipSecureFile.ThresholdInputStream;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -89,9 +87,8 @@ public final class ZipPackage extends Package {
      */
     ZipPackage(InputStream in, PackageAccess access) throws IOException {
         super(access);
-        InputStream zis = new ZipInputStream(in);
-        ThresholdInputStream tis = ZipSecureFile.addThreshold(zis);
-        this.zipArchive = new ZipInputStreamZipEntrySource(tis);
+        ThresholdInputStream zis = ZipHelper.openZipStream(in);
+        this.zipArchive = new ZipInputStreamZipEntrySource(zis);
     }
 
     /**
index 60df65ef734c8187d170040762b16a24a319b9bd..2a536dc7bfb0cdbb571e70539cc7f696e92ff88f 100644 (file)
@@ -19,17 +19,20 @@ package org.apache.poi.openxml4j.opc.internal;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Enumeration;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
+import java.util.zip.ZipInputStream;
 
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
 import org.apache.poi.openxml4j.opc.ZipPackage;
 import org.apache.poi.openxml4j.util.ZipSecureFile;
+import org.apache.poi.openxml4j.util.ZipSecureFile.ThresholdInputStream;
 
 public final class ZipHelper {
     /**
@@ -143,7 +146,21 @@ public final class ZipHelper {
     }
 
     /**
-     * Opens the specified file as a zip, or returns null if no such file exists
+     * Opens the specified stream as a secure zip
+     *
+     * @param stream
+     *            The stream to open.
+     * @return The zip stream freshly open.
+     */
+    public static ThresholdInputStream openZipStream(InputStream stream) throws IOException {
+        InputStream zis = new ZipInputStream(stream);
+        ThresholdInputStream tis = ZipSecureFile.addThreshold(zis);
+        return tis;
+    }
+
+    /**
+     * Opens the specified file as a secure zip, or returns null if no 
+     *  such file exists
      *
      * @param file
      *            The file to open.
@@ -158,7 +175,7 @@ public final class ZipHelper {
     }
 
     /**
-     * Retrieve and open a zip file with the specified path.
+     * Retrieve and open as a secure zip file with the specified path.
      *
      * @param path
      *            The file path.
@@ -166,11 +183,7 @@ public final class ZipHelper {
      */
     public static ZipFile openZipFile(String path) throws IOException {
         File f = new File(path);
-
-        if (!f.exists()) {
-            return null;
-        }
-
-        return new ZipSecureFile(f);
+        
+        return openZipFile(f);
     }
 }