]> source.dussan.org Git - poi.git/commitdiff
give more helpful exceptions rather than returning null when zip file cannot be opened
authorJaven O'Neal <onealj@apache.org>
Wed, 14 Sep 2016 13:28:27 +0000 (13:28 +0000)
committerJaven O'Neal <onealj@apache.org>
Wed, 14 Sep 2016 13:28:27 +0000 (13:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1760708 13f79535-47bb-0310-9956-ffa450edef68

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

index 632d2af262de5679ad5b40a12ebc2d005873fe14..b674b3ad2f638d35c8260dbb87d4d6f0bf81711a 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.openxml4j.opc.internal;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PushbackInputStream;
@@ -239,10 +240,15 @@ public final class ZipHelper {
      * @param file
      *            The file to open.
      * @return The zip archive freshly open.
+     * @throws IOException if the zip file cannot be opened or closed to read the header signature
+     * @throws NotOfficeXmlFileException if stream does not start with zip header signature
      */
-    public static ZipFile openZipFile(File file) throws IOException {
+    public static ZipFile openZipFile(File file) throws IOException, NotOfficeXmlFileException {
         if (!file.exists()) {
-            return null;
+            throw new FileNotFoundException("File does not exist");
+        }
+        if (file.isDirectory()) {
+            throw new IOException("File is a directory");
         }
         
         // Peek at the first few bytes to sanity check