Author: nick
Date: Thu Jan 15 23:58:52 2015
New Revision: 1652315

URL: http://svn.apache.org/r1652315
Log:
TIKA-1028 Have PackageParser report encrypted zips via 
EncryptedDocumentException rather than commons compress 
UnsupportedZipFeatureException

Modified:
    
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java

Modified: 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java?rev=1652315&r1=1652314&r2=1652315&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
 (original)
+++ 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
 Thu Jan 15 23:58:52 2015
@@ -33,7 +33,10 @@ import org.apache.commons.compress.archi
 import org.apache.commons.compress.archivers.jar.JarArchiveInputStream;
 import org.apache.commons.compress.archivers.sevenz.SevenZFile;
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+import 
org.apache.commons.compress.archivers.zip.UnsupportedZipFeatureException;
+import 
org.apache.commons.compress.archivers.zip.UnsupportedZipFeatureException.Feature;
 import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
+import org.apache.tika.exception.EncryptedDocumentException;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.extractor.EmbeddedDocumentExtractor;
 import org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor;
@@ -161,6 +164,12 @@ public class PackageParser extends Abstr
                 }
                 entry = ais.getNextEntry();
             }
+        } catch (UnsupportedZipFeatureException zfe) {
+            // If it's an encrypted document of unknown password, report as 
such
+            if (zfe.getFeature() == Feature.ENCRYPTION) {
+                throw new EncryptedDocumentException(zfe);
+            }
+            // Otherwise fall through to raise the exception as normal
         } finally {
             ais.close();
             tmp.close();


Reply via email to