commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "BELUGA BEHR (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (COMPRESS-279) TarArchiveInputStream silently finished when unexpected EOF occured
Date Fri, 25 Apr 2014 02:28:17 GMT

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

BELUGA BEHR edited comment on COMPRESS-279 at 4/25/14 2:28 AM:
---------------------------------------------------------------

Surprisingly simple (unless I'm over-looking something) fix.  Patch included.

Note that calling IOUtils#skip (Compress-277) on the stream will have the effect of skipping
until EOL, then when it finishes by calling read, it will trigger this exception.

There are no unit tests in the suite that trigger this though.


was (Author: belugabehr):
Surprisingly simple (unless I'm over-looking something) fix.  Patch included.

Note that calling IOUtils#skip on the stream will have the effect of skipping until EOL, then
when it finishes by calling read, it will trigger this exception.

There are no unit tests in the suite that trigger this though.

> 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: TarArchiveInputStream.java.patch, 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