mirror of https://github.com/apache/poi.git
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
This commit is contained in:
parent
caef630c70
commit
8350124e9b
|
@ -144,7 +144,9 @@ public final class ZipPackage extends OPCPackage {
|
||||||
if (access == PackageAccess.WRITE) {
|
if (access == PackageAccess.WRITE) {
|
||||||
throw new InvalidOperationException("Can't open the specified file: '" + file + "'", e);
|
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);
|
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)");
|
LOG.log(POILogger.ERROR, "Error in zip file "+file+" - falling back to stream processing (i.e. ignoring zip central directory)");
|
||||||
|
|
|
@ -1195,11 +1195,14 @@ public final class TestPackage {
|
||||||
File tmpFile = OpenXML4JTestDataSamples.getOutputFile("Bug63029.docx");
|
File tmpFile = OpenXML4JTestDataSamples.getOutputFile("Bug63029.docx");
|
||||||
Files.copy(testFile, tmpFile);
|
Files.copy(testFile, tmpFile);
|
||||||
|
|
||||||
|
int numPartsBefore = 0;
|
||||||
String md5Before = Files.hash(tmpFile, Hashing.md5()).toString();
|
String md5Before = Files.hash(tmpFile, Hashing.md5()).toString();
|
||||||
|
|
||||||
RuntimeException ex = null;
|
RuntimeException ex = null;
|
||||||
try(OPCPackage pkg = OPCPackage.open(tmpFile, PackageAccess.READ_WRITE))
|
try(OPCPackage pkg = OPCPackage.open(tmpFile, PackageAccess.READ_WRITE))
|
||||||
{
|
{
|
||||||
|
numPartsBefore = pkg.getParts().size();
|
||||||
|
|
||||||
// add a marshaller that will throw an exception on save
|
// add a marshaller that will throw an exception on save
|
||||||
pkg.addMarshaller("poi/junit", (part, out) -> {
|
pkg.addMarshaller("poi/junit", (part, out) -> {
|
||||||
throw new RuntimeException("Bugzilla 63029");
|
throw new RuntimeException("Bugzilla 63029");
|
||||||
|
@ -1216,10 +1219,12 @@ public final class TestPackage {
|
||||||
assertEquals(md5Before, md5After);
|
assertEquals(md5Before, md5After);
|
||||||
|
|
||||||
// try to read the source file once again
|
// 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.
|
// the source is still a valid zip archive.
|
||||||
// prior to the fix this used to throw NotOfficeXmlFileException("archive is not a 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue