commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Shattu (JIRA)" <>
Subject [jira] [Updated] (COMPRESS-384) Tar File EOF not being detected
Date Sat, 22 Apr 2017 14:33:04 GMT


Jason Shattu updated COMPRESS-384:

Yep, i'm doing something slightly novel, but I would expect to still be 
supported by the library.

so given something like

     ArchiveInputStream archiveStream = new 
ArchiveStreamFactory().createArchiveInputStream(format, stream);

The stream I pass into the factory is not just a straightforward 
FileInputStream, but a FileInputStream that is wrapped using a 
FilterInputStream, which deliberately blocks if there is no more data.

The reason I do this, is that I might have a separate slow running 
process generating the tar file and the processing reading the tar file 
doesn't know when it had ended. Perhaps there is a better way to do this 
so please advise.

In any case, this approach works nicely with Zip Archives but not with 
Tar file.

Does that make sense?


> Tar File EOF not being detected
> -------------------------------
>                 Key: COMPRESS-384
>                 URL:
>             Project: Commons Compress
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 1.13
>         Environment: Windows 10, JDK 1.8
>            Reporter: Jason Shattu
>         Attachments: file.tar
> I've created both a zip and tar file, with the same contents using the latest version
of 7zip. When I read both archives using code of the form:
> ArchiveStreamFactory().createArchiveInputStream(format, inputStream);
> I notice that both formats correctly list their contents, however the Tar Input doesn't
return a "null" entry when it hits the EOF from archiveStream.getNextEntry() 
> this makes it hard to distinguish between a genuine EOF or a file which is still being
written to. 

This message was sent by Atlassian JIRA

View raw message