You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Thomas BELOT (Jira)" <ji...@apache.org> on 2020/04/08 10:21:00 UTC

[jira] [Created] (VFS-769) TGZ fsManager.createFileSystem fails

Thomas BELOT created VFS-769:
--------------------------------

             Summary: TGZ fsManager.createFileSystem fails
                 Key: VFS-769
                 URL: https://issues.apache.org/jira/browse/VFS-769
             Project: Commons VFS
          Issue Type: Bug
    Affects Versions: 2.6.0
            Reporter: Thomas BELOT


{code:java}
FileSystemManager fsManager = VFS.getManager();
FileObject f1 = fsManager.resolveFile("file:///C:/DIR");
FileObject f2 = f1.resolveFile("test.tgz");
FileObject res = fsManager.createFileSystem(f2);
System.out.println(res);{code}
Fails with this stack trace :
{noformat}
Caused by: java.lang.IllegalStateException: org.apache.commons.vfs2.FileSystemException: Unknown message with code "Error detected parsing the header".
	at MyClass.main(MyClass.java:30)
Caused by: org.apache.commons.vfs2.FileSystemException: Unknown message with code "Error detected parsing the header".
	at org.apache.commons.vfs2.provider.tar.TarFileSystem.init(TarFileSystem.java:117)
	at org.apache.commons.vfs2.provider.AbstractVfsContainer.addComponent(AbstractVfsContainer.java:51)
	at org.apache.commons.vfs2.provider.AbstractFileProvider.addFileSystem(AbstractFileProvider.java:98)
	at org.apache.commons.vfs2.provider.AbstractLayeredFileProvider.createFileSystem(AbstractLayeredFileProvider.java:81)
	at org.apache.commons.vfs2.impl.DefaultFileSystemManager.createFileSystem(DefaultFileSystemManager.java:896)
	at org.apache.commons.vfs2.impl.DefaultFileSystemManager.createFileSystem(DefaultFileSystemManager.java:910)
	at MyClass.main(MyClass.java:27)
Caused by: java.io.IOException: Error detected parsing the header
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:371)
	at org.apache.commons.vfs2.provider.tar.TarFileSystem.init(TarFileSystem.java:80)
	... 6 more
Caused by: java.lang.IllegalArgumentException: At offset 124, 12 byte binary number exceeds maximum signed long value
	at org.apache.commons.compress.archivers.tar.TarUtils.parseBinaryBigInteger(TarUtils.java:215)
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:179)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1350)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:438)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:369)
	... 7 more
{noformat}
but if I explicitly states that this is *tgz* scheme, it works fine
{code:java}
FileObject res = fsManager.createFileSystem("tgz",f2);{code}

This seems linked to the following lines :
[default FS manager disables TGZ scheme and convert it to TAR scheme|https://gitbox.apache.org/repos/asf?p=commons-vfs.git;a=blob;f=commons-vfs2/src/main/resources/org/apache/commons/vfs2/impl/providers.xml;h=332f2ffa6fad2bbe0a377fcd2c5d93df1f3cac7b;hb=HEAD#l162] and [checks for TGZ scheme|https://gitbox.apache.org/repos/asf?p=commons-vfs.git;a=blob;f=commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileSystem.java;h=739cc797bd553f2cbc995e31bc744fb7f8780659;hb=HEAD#l171]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)