commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "PeterL in (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COMPRESS-279) TarArchiveInputStream silently finished when unexpected EOF occured
Date Fri, 25 Apr 2014 00:15:19 GMT

    [ https://issues.apache.org/jira/browse/COMPRESS-279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13980530#comment-13980530
] 

PeterL in commented on COMPRESS-279:
------------------------------------

Hi Stefan,

I saw this behavior on v1.4. However, I think it is the correct behavior. If you try to use
command line 'tar' it will throw the following message:

tar xvf trim.tar 
LICENSE.txt
NOTICE.txt
README.txt
RELEASE-NOTES.txt
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

Don't you think the Java version should at least indicate something is wrong maybe with a
flag to turn it silent or so..

> TarArchiveInputStream silently finished when unexpected EOF occured
> -------------------------------------------------------------------
>
>                 Key: COMPRESS-279
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-279
>             Project: Commons Compress
>          Issue Type: Bug
>          Components: Archivers
>    Affects Versions: 1.7, 1.8
>         Environment: Common Compress 1.7 + openJDK 1.7
>            Reporter: PeterL in
>              Labels: regression, tar
>             Fix For: 1.9
>
>         Attachments: complete.tar, trim.tar, trim.tar.bz2
>
>
> I just found the following test case didn't raise an IOException as it used to be for
a *tar trimmed on purpose* 
> @Test
>   public void testCorruptedBzip2() throws IOException {
>     String archivePath = PathUtil.join(testdataDir, "test.tar.bz2");
>     TarArchiveInputStream input = null;
>     input = new TarArchiveInputStream(new BZip2CompressorInputStream(
>         GoogleFile.SYSTEM.newInputStream(archivePath), true));
>     ArchiveEntry nextMatchedEntry = input.getNextEntry();
>     while (nextMatchedEntry != null) {
>       logger.infofmt("Extracting %s", nextMatchedEntry.getName());
>       String outputPath = PathUtil.join("/tmp/", nextMatchedEntry.getName());
>       OutputStream out = new FileOutputStream(outputPath);
>       ByteStreams.copy(input, out);
>       out.close();
>       nextMatchedEntry = input.getNextEntry();
>     }
>   }



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message