[ https://issues.apache.org/jira/browse/COMPRESS-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13218093#comment-13218093 ]
Stefan Bodewig edited comment on COMPRESS-181 at 2/28/12 12:32 PM: ------------------------------------------------------------------- GNU tar from_header in list.c contains a workaround for this case: {noformat} /* Accommodate buggy tar of unknown vintage, which outputs leading NUL if the previous field overflows. */ where += !*where; {noformat} this basically skips the first byte if it is a binary 0. was (Author: bodewig): GNU tar from_header in list.c contains a workaround for this case: /* Accommodate buggy tar of unknown vintage, which outputs leading NUL if the previous field overflows. */ where += !*where; this basically skips the first byte if it is a binary 0. > Tar files created by AIX native tar, and which contain symlinks, cannot be > read by TarArchiveInputStream > -------------------------------------------------------------------------------------------------------- > > Key: COMPRESS-181 > URL: https://issues.apache.org/jira/browse/COMPRESS-181 > Project: Commons Compress > Issue Type: Bug > Components: Archivers > Affects Versions: 1.2, 1.3, 1.4 > Environment: AIX 5.3 > Reporter: Robert Clark > Attachments: simple-aix-native-tar.tar > > > A simple tar file created on AIX using the native ({{/usr/bin/tar}} tar > utility) *and* which contains a symbolic link, cannot be loaded by > TarArchiveInputStream: > {noformat} > java.io.IOException: Error detected parsing the header > at > org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:201) > at Extractor.extract(Extractor.java:13) > at Extractor.main(Extractor.java:28) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217) > at > org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152) > at org.apache.tools.ant.taskdefs.Java.run(Java.java:771) > at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221) > at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135) > at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:390) > at org.apache.tools.ant.Target.performTasks(Target.java:411) > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) > at org.apache.tools.ant.Project.executeTarget(Project.java:1368) > at > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > at org.apache.tools.ant.Project.executeTargets(Project.java:1251) > at org.apache.tools.ant.Main.runBuild(Main.java:809) > at org.apache.tools.ant.Main.startAnt(Main.java:217) > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) > Caused by: java.lang.IllegalArgumentException: Invalid byte 0 at offset 0 in > '{NUL}1722000726 ' len=12 > at > org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:99) > at > org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:819) > at > org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:314) > at > org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:199) > ... 29 more > {noformat} > Tested with 1.2 and the 1.4 nightly build from Feb 23 > ({{Implementation-Build: trunk@r1292625; 2012-02-23 03:20:30+0000}}) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira