[
https://issues.apache.org/jira/browse/COMPRESS-417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16091703#comment-16091703
]
Stefan Bodewig commented on COMPRESS-417:
-----------------------------------------
Many thanks. Have you tried unarchiving the file without gzip compression, i.e.
gunzip on the command line and read the resulting tar? That way we may know
whether gzip or tar is to blame.
I should be able to look into this sometime later this week, but maybe the
experiment may provide a useful workaround.
> Decompress tar.gz file failed. java.io.Exception:Error detected parsing the
> header
> ----------------------------------------------------------------------------------
>
> Key: COMPRESS-417
> URL: https://issues.apache.org/jira/browse/COMPRESS-417
> Project: Commons Compress
> Issue Type: Bug
> Components: Compressors
> Affects Versions: 1.14
> Reporter: alphacome
> Priority: Critical
> Attachments: 20000102.0000+0800-20000102.0015+0800_0.tar.gz
>
>
> {code:java}
> public static void deGzipArchive(String filepath,String dir)
> throws Exception {
> final File input = new File(filepath);
> final InputStream is = new FileInputStream(input);
> final CompressorInputStream in = new GzipCompressorInputStream(is,
> true);
> TarArchiveInputStream tin = new TarArchiveInputStream(in);
> TarArchiveEntry entry = tin.getNextTarEntry();
> while (entry != null) {
> File archiveEntry = new File(dir, entry.getName());
> archiveEntry.getParentFile().mkdirs();
> if (entry.isDirectory()) {
> archiveEntry.mkdir();
> entry = tin.getNextTarEntry();
> continue;
> }
> OutputStream out = new FileOutputStream(archiveEntry);
> IOUtils.copy(tin, out);
> out.close();
> entry = tin.getNextTarEntry();
> }
> in.close();
> tin.close();
> }
> public static void main(String[] args) throws Exception {
>
> Gztest.deGzipArchive("D:/20000102.0000+0800-20000102.0015+0800_0.tar.gz","D:/");
> }
> {code}
> the tar.gz file can be decompressed in linux environment use 'tar' command.
> The error log:
> Exception in thread "main" java.io.IOException: Error detected parsing the
> header
> at
> org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:286)
> at gztest.deGzipArchive(gztest.java:23)
> at gztest.main(gztest.java:149)
> Caused by: java.lang.IllegalArgumentException: Invalid byte 100 at offset 0
> in 'dos{NUL}{NUL}{NUL}{NUL}{NUL}' len=8
> at
> org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:141)
> at
> org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:171)
> at
> org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1128)
> at
> org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1091)
> at
> org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:368)
> at
> org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:284)
> ... 2 more
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)