aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2019-02-13 06:45:14 +0000
committerYegor Kozlov <yegor@apache.org>2019-02-13 06:45:14 +0000
commit8350124e9bd0bcfb8669a7ff0d81c8bc5002dbf8 (patch)
tree8a594e85c0f69ac5678319ce4f7e234823c0f677
parentcaef630c70d343be89805c40f45822b62feb16d7 (diff)
downloadpoi-8350124e9bd0bcfb8669a7ff0d81c8bc5002dbf8.tar.gz
poi-8350124e9bd0bcfb8669a7ff0d81c8bc5002dbf8.zip
Bug 63029: revert handling NotOfficeXmlFileException in ZipPackage as this change broke the build
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1853474 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java4
-rw-r--r--src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java7
2 files changed, 9 insertions, 2 deletions
diff --git a/src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java b/src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java
index 8867e34ae7..9212ed5910 100644
--- a/src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java
+++ b/src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java
@@ -144,7 +144,9 @@ public final class ZipPackage extends OPCPackage {
if (access == PackageAccess.WRITE) {
throw new InvalidOperationException("Can't open the specified file: '" + file + "'", e);
}
- if ("archive is not a ZIP archive".equals(e.getMessage())) {
+ // YK: this is incorrect and the exception below is never thrown.
+ // The could below should catch "archive is not a ZIP archive"
+ if ("java.util.zip.ZipException: archive is not a ZIP archive".equals(e.getMessage())) {
throw new NotOfficeXmlFileException("archive is not a ZIP archive", e);
}
LOG.log(POILogger.ERROR, "Error in zip file "+file+" - falling back to stream processing (i.e. ignoring zip central directory)");
diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
index 4f4e4e5b5e..4caf68988f 100644
--- a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
+++ b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
@@ -1195,11 +1195,14 @@ public final class TestPackage {
File tmpFile = OpenXML4JTestDataSamples.getOutputFile("Bug63029.docx");
Files.copy(testFile, tmpFile);
+ int numPartsBefore = 0;
String md5Before = Files.hash(tmpFile, Hashing.md5()).toString();
RuntimeException ex = null;
try(OPCPackage pkg = OPCPackage.open(tmpFile, PackageAccess.READ_WRITE))
{
+ numPartsBefore = pkg.getParts().size();
+
// add a marshaller that will throw an exception on save
pkg.addMarshaller("poi/junit", (part, out) -> {
throw new RuntimeException("Bugzilla 63029");
@@ -1216,10 +1219,12 @@ public final class TestPackage {
assertEquals(md5Before, md5After);
// try to read the source file once again
- try ( OPCPackage zip = OPCPackage.open(tmpFile, PackageAccess.READ_WRITE)){
+ try ( OPCPackage pkg = OPCPackage.open(tmpFile, PackageAccess.READ_WRITE)){
// the source is still a valid zip archive.
// prior to the fix this used to throw NotOfficeXmlFileException("archive is not a ZIP archive")
+ // assert that the number of parts remained the same
+ assertEquals(pkg.getParts().size(), numPartsBefore);
}
}