]> source.dussan.org Git - poi.git/commitdiff
Ignore JCE restriction errors
authorAndreas Beeker <kiwiwings@apache.org>
Wed, 7 Jun 2017 06:25:56 +0000 (06:25 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Wed, 7 Jun 2017 06:25:56 +0000 (06:25 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1797856 13f79535-47bb-0310-9956-ffa450edef68

src/integrationtest/org/apache/poi/stress/AbstractFileHandler.java
src/integrationtest/org/apache/poi/stress/XSSFFileHandler.java

index cf606c05cdcc359e4028fbc6662fd26a0e7476f1..c4e453e5807fcdc80ae6cbdbb1b9f6eab1250aad 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.stress;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assume.assumeFalse;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -27,11 +28,13 @@ import java.io.InputStream;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.POIOLE2TextExtractor;
 import org.apache.poi.POITextExtractor;
 import org.apache.poi.extractor.ExtractorFactory;
 import org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
+import org.apache.poi.util.IOUtils;
 import org.apache.xmlbeans.XmlException;
 
 public abstract class AbstractFileHandler implements FileHandler {
@@ -75,8 +78,9 @@ public abstract class AbstractFileHandler implements FileHandler {
         long length = file.length();
         long modified = file.lastModified();
         
-        POITextExtractor extractor = ExtractorFactory.createExtractor(file);
+        POITextExtractor extractor = null;
         try  {
+            extractor = ExtractorFactory.createExtractor(file);
             assertNotNull("Should get a POITextExtractor but had none for file " + file, extractor);
 
             assertNotNull("Should get some text but had none for file " + file, extractor.getText());
@@ -110,8 +114,12 @@ public abstract class AbstractFileHandler implements FileHandler {
             if(!EXPECTED_EXTRACTOR_FAILURES.contains(file.getParentFile().getName() + "/" + file.getName())) {
                 throw e;
             }
+        } catch (EncryptedDocumentException e) {
+            String msg = "org.apache.poi.EncryptedDocumentException: Export Restrictions in place - please install JCE Unlimited Strength Jurisdiction Policy files";
+            assumeFalse(msg.equals(e.getMessage()));
+            throw e;
         } finally {
-            extractor.close();
+            IOUtils.closeQuietly(extractor);
         }
     }
 
index 477f8aa64212c5ec997544be563affdaf7b11196..7ba697f2318f6d8d86c07a76faa7df3b8b2fc55f 100644 (file)
@@ -16,8 +16,9 @@
 ==================================================================== */
 package org.apache.poi.stress;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeFalse;
 
 import java.io.BufferedInputStream;
@@ -37,6 +38,7 @@ import java.util.Set;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
 
+import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.POIXMLException;
 import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -75,8 +77,14 @@ public class XSSFFileHandler extends SpreadsheetHandler {
                 POIFSFileSystem poifs = new POIFSFileSystem(bytes);
                 EncryptionInfo ei = new EncryptionInfo(poifs);
                 Decryptor dec = ei.getDecryptor();
-                boolean b = dec.verifyPassword(pass);
-                assertTrue("password mismatch", b);
+                try {
+                    boolean b = dec.verifyPassword(pass);
+                    assertTrue("password mismatch", b);
+                } catch (EncryptedDocumentException e) {
+                    String msg = "Export Restrictions in place - please install JCE Unlimited Strength Jurisdiction Policy files";
+                    assumeFalse(msg.equals(e.getMessage()));
+                    throw e;
+                }
                 InputStream is = dec.getDataStream(poifs);
                 out.reset();
                 IOUtils.copy(is, out);