You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Tim Allison (Jira)" <ji...@apache.org> on 2020/02/28 15:01:00 UTC
[jira] [Created] (COMPRESS-506) ZipException when on
ZipArchiveInputStream but not ZipFile
Tim Allison created COMPRESS-506:
------------------------------------
Summary: ZipException when on ZipArchiveInputStream but not ZipFile
Key: COMPRESS-506
URL: https://issues.apache.org/jira/browse/COMPRESS-506
Project: Commons Compress
Issue Type: Task
Reporter: Tim Allison
Over on Apache Tika, we recently gathered files from a number of bug trackers. We found that this file (https://bz.apache.org/ooo/attachment.cgi?id=17659) causes an exception with ZipArchiveInputStream but not with ZipFile. Java's ZipInputStream silently stops after the second entry.
linux commandline {{unzip}} is able to unzip the file without problems.
JIRA is not allowing me to attach the file.
To replicate the problem:
{noformat}
@Test
public void testOneOff() throws Exception {
Path p = Paths.get(".../ooo-5948.bau");
try(ZipFile zip = new ZipFile(p.toFile())) {
Enumeration<ZipArchiveEntry> enm = zip.getEntries();
while (enm.hasMoreElements()) {
ZipArchiveEntry zae = enm.nextElement();
System.out.println("commons-compress zipFile: "+zae.getName());
}
}
try (InputStream is = Files.newInputStream(p)) {
try (ZipArchiveInputStream zais = new ZipArchiveInputStream(is)) {
ZipArchiveEntry zae = zais.getNextZipEntry();
while (zae != null) {
System.out.println("commons-compress stream: " + zae.getName());
zae = zais.getNextZipEntry();
}
}
} catch (ZipException e) {
e.printStackTrace();
}
try (ZipInputStream zipInputStream = new ZipInputStream(Files.newInputStream(p))) {
ZipEntry ze = zipInputStream.getNextEntry();
while (ze != null) {
System.out.println("java zip stream: " + ze.getName());
ze = zipInputStream.getNextEntry();
}
}
}
{noformat}
output:
{noformat}
commons-compress zipFile: mimetype
commons-compress zipFile: P0/content.xml
commons-compress zipFile: P0/styles.xml
commons-compress zipFile: P1/content.xml
commons-compress zipFile: P1/styles.xml
commons-compress zipFile: P2/content.xml
commons-compress zipFile: P2/styles.xml
commons-compress zipFile: P3/content.xml
commons-compress zipFile: P3/styles.xml
commons-compress zipFile: P4/content.xml
commons-compress zipFile: P4/styles.xml
commons-compress zipFile: P5/content.xml
commons-compress zipFile: P5/styles.xml
commons-compress zipFile: P6/content.xml
commons-compress zipFile: P6/styles.xml
commons-compress zipFile: P7/content.xml
commons-compress zipFile: P7/styles.xml
commons-compress zipFile: P8/content.xml
commons-compress zipFile: P8/styles.xml
commons-compress zipFile: P9/content.xml
commons-compress zipFile: P9/styles.xml
commons-compress zipFile: PF/content.xml
commons-compress zipFile: PF/styles.xml
commons-compress zipFile: BlockList.xml
commons-compress zipFile: META-INF/manifest.xml
commons-compress stream: mimetype
commons-compress stream: P0/content.xml
java.util.zip.ZipException: Unexpected record signature: 0X8074B50
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry(ZipArchiveInputStream.java:286)
at org.apache.tika.detect.TestContainerAwareDetector.testOneOff(TestContainerAwareDetector.java:245)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
java zip stream: mimetype
java zip stream: P0/content.xml
{noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)