Author: bodewig
Date: Sat Jul 7 05:30:40 2012
New Revision: 1358506
URL: http://svn.apache.org/viewvc?rev=1358506&view=rev
Log:
COMPRESS-191 ArchiveStreamFactory false positive for tar format. Submitted by
Jukka Zitting
Added:
commons/proper/compress/trunk/src/test/resources/testAIFF.aif (props
changed)
- copied unchanged from r1358501,
tika/trunk/tika-parsers/src/test/resources/test-documents/testAIFF.aif
Modified:
commons/proper/compress/trunk/src/changes/changes.xml
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java
Modified: commons/proper/compress/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/changes/changes.xml?rev=1358506&r1=1358505&r2=1358506&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/changes/changes.xml (original)
+++ commons/proper/compress/trunk/src/changes/changes.xml Sat Jul 7 05:30:40
2012
@@ -42,6 +42,18 @@ The <action> type attribute can be add,u
<title>commons-compress</title>
</properties>
<body>
+ <release version="1.5" date="not released, yet"
+ description="Release 1.5">
+ <action type="fix" date="2012-07-07" issue="COMPRESS-191"
+ due-to="Jukka Zitting">
+ ArchiveStreamFactory's tar stream detection created false
+ positives for AIFF files.
+ </action>
+ <action type="update" date="2012-07-07" issue="COMPRESS-191"
+ due-to="Jukka Zitting">
+ TarArchiveEntry now has a method to verify its checksum.
+ </action>
+ </release>
<release version="1.4.1" date="2012-05-23"
description="Release 1.4.1">
<action type="fix" date="2012-05-20">
Modified:
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java
URL:
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java?rev=1358506&r1=1358505&r2=1358506&view=diff
==============================================================================
---
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java
(original)
+++
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java
Sat Jul 7 05:30:40 2012
@@ -240,8 +240,10 @@ public class ArchiveStreamFactory {
if (signatureLength >= 512) {
try {
TarArchiveInputStream tais = new TarArchiveInputStream(new
ByteArrayInputStream(tarheader));
- tais.getNextEntry();
- return new TarArchiveInputStream(in);
+ // COMPRESS-191 - verify the header checksum
+ if (tais.getNextTarEntry().isCheckSumOK()) {
+ return new TarArchiveInputStream(in);
+ }
} catch (Exception e) { // NOPMD
// can generate IllegalArgumentException as well
// as IOException
Modified:
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java?rev=1358506&r1=1358505&r2=1358506&view=diff
==============================================================================
---
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java
(original)
+++
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java
Sat Jul 7 05:30:40 2012
@@ -21,7 +21,10 @@ package org.apache.commons.compress.arch
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.InputStream;
import org.junit.Test;
@@ -41,4 +44,23 @@ public class ArchiveStreamFactoryTest {
}
}
-}
\ No newline at end of file
+ /**
+ * see https://issues.apache.org/jira/browse/COMPRESS-191
+ */
+ @Test
+ public void aiffFilesAreNoTARs() throws Exception {
+ InputStream is = null;
+ try {
+ is = new BufferedInputStream(new
FileInputStream("src/test/resources/testAIFF.aif"));
+ new ArchiveStreamFactory().createArchiveInputStream(is);
+ fail("created an input stream for a non-archive");
+ } catch (ArchiveException ae) {
+ assertTrue(ae.getMessage().startsWith("No Archiver found"));
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
+ }
+
+}
Propchange: commons/proper/compress/trunk/src/test/resources/testAIFF.aif
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: commons/proper/compress/trunk/src/test/resources/testAIFF.aif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream