commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COMPRESS-181) Tar files created by AIX native tar, and which contain symlinks, cannot be read by TarArchiveInputStream
Date Tue, 28 Feb 2012 02:07:48 GMT

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

Sebb commented on COMPRESS-181:
-------------------------------

The problem field is the modification time for the symbolic link, which Compress expects to
be either all null or valid octal with trailing null/space.

Note: 7zip reads the file OK but complains that there is data after the end of the archive.
It treats the link field as having no mtime.

I've yet to find any documentation that says a leading null is allowed.
Perhaps AIX tar is being lazy and failing to null the whole mtime field (which Compress could
handle).
                
> 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

        

Mime
View raw message