Robin Schimpf created COMPRESS-558:
--------------------------------------
Summary: Current master fails to extract ActiveMQ tar archive
Key: COMPRESS-558
URL: https://issues.apache.org/jira/browse/COMPRESS-558
Project: Commons Compress
Issue Type: Bug
Affects Versions: 1.21
Reporter: Robin Schimpf
While version 1.20 is able to extract the ActiveMQ tar archive which can be
found here ([https://activemq.apache.org/components/classic/download/]) the
current master fails at extracting it with the following exception
{code:java}
java.io.IOException: Error detected parsing the header
at
org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:385)
{code}
I made a bisect search and this reveals the error is introduced with
COMPRESS-509. I made an analysis and found the following why the problem appears
* Error ist thrown after reading a file in the tar but the file has a "/" at
the end
* In the currEntry.isGNULongNameEntry the currEntry.isDirectory evaluates to
true for this file -> reason why the "/" is appended
* The underlying problem is that isDirectory also checks if the entry has a
"/" at the end. But the decoded file name is not yet set in the currEntry.
Since the entry before the file is a folder the name ends with "/" and
isDirectory returns the wrong value
Since I already came this far I'll send a pulll request where the decoded name
is set before checking if we need to append "/" to the entry name. With this
change the ActiveMQ tar can be extracted correctly again.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)