commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zhangxinyue (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COMPRESS-457) When there is no space in the disk,the method closeArchiveEntry() cannot work
Date Tue, 03 Jul 2018 01:27:00 GMT

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

zhangxinyue commented on COMPRESS-457:
--------------------------------------

Thank you anyway

> When there is no space in the disk,the method closeArchiveEntry() cannot work
> -----------------------------------------------------------------------------
>
>                 Key: COMPRESS-457
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-457
>             Project: Commons Compress
>          Issue Type: Improvement
>          Components: Compressors
>    Affects Versions: 1.16, 1.17
>         Environment: all are environment can recurring this problems
>            Reporter: zhangxinyue
>            Priority: Minor
>             Fix For: 1.18
>
>
> When there is no space in the disk,I want  to delete the Compressed half file,
in my code,I close  the archiveEntry use method closeArchiveEntry() of the TarArchiveOutputStream
class,but because follow code fragments,closeArchiveEntry() is not work,I cannoot close
io stream TarArchiveOutputStream,so that the tmp *.tar.gz cannot be delete.
> {code:java}
> // code placeholder
> public void closeArchiveEntry() throws IOException {
>     if (this.finished) {
>         throw new IOException("Stream has already been finished");
>     } else if (!this.haveUnclosedEntry) {
>         throw new IOException("No current entry to close");
>     } else {
>         this.out.flushBlock();
>         if (this.currBytes < this.currSize) {
>             throw new IOException("entry '" + this.currName + "' closed at '" + this.currBytes
+ "' before the '" + this.currSize + "' bytes specified in the header were written");
>         } else {
>             this.recordsWritten = (int)((long)this.recordsWritten + this.currSize / 512L);
>             if (0L != this.currSize % 512L) {
>                 ++this.recordsWritten;
>             }
>             this.haveUnclosedEntry = false;
>         }
>     }
> }
> {code}
> I think this is a bug, when closeArchiveEntry() called,should not throw the follow 
IOException("entry '" + this.currName + "' closed at '" + this.currBytes + "' before the '"
+ this.currSize + "' bytes specified in the header were written").
> {code:java}
> // code placeholder
> if (this.currBytes < this.currSize)
> { throw new IOException("entry '" + this.currName + "' closed at '" + this.currBytes
+ "' before the '" + this.currSize + "' bytes specified in the header were written"); }
> {code}
>  
> Please help, thk!!!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message