[
https://issues.apache.org/jira/browse/COMPRESS-479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16838037#comment-16838037
]
Stefan Bodewig commented on COMPRESS-479:
-----------------------------------------
Actually I haven't figured out how to do that best myself either. The code for
dealing with the parser error is in a branch COMPRESS-479 and has been sitting
in my work tree for a while. Unfortunately I'm not spending as much time on
Compress as would be needed to get to a closure here quickly.
My current line of thought was heading towards a lenient mode for the
stream/ZipFile but I'm not sure whether such a flag wouldn't somehow imply more
changes than "just" the parsing of extra fields.
> Unable to extract Zip with unknown UniCode path extra data version
> ------------------------------------------------------------------
>
> Key: COMPRESS-479
> URL: https://issues.apache.org/jira/browse/COMPRESS-479
> Project: Commons Compress
> Issue Type: Bug
> Affects Versions: 1.18
> Reporter: Robin Schimpf
> Priority: Major
> Fix For: 1.19
>
> Attachments: unicode-test10509149899131946592.zip
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> The following exception is thrown when the version of the UniCode path extra
> data version is not 1. 7-Zip and Windows Explorer will extract the attached
> file. The version in the file was changed via a Hex editor to provoke the
> error.
> {code:java}
> java.lang.RuntimeException: Error parsing extra fields for entry:
> %U20AC_for_Dollar.txt - Unsupported version [116] for UniCode path extra data.
> at
> org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtra(ZipArchiveEntry.java:626)
> at
> org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry(ZipArchiveInputStream.java:315)
> at
> org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry(ZipArchiveInputStream.java:408)
> at
> org.apache.commons.compress.archivers.zip.UTF8ZipFilesTest.testZipFileReadsUnicodeFields(UTF8ZipFilesTest.java:186)
> ...
> Caused by: java.util.zip.ZipException: Unsupported version [116] for UniCode
> path extra data.
> at
> org.apache.commons.compress.archivers.zip.AbstractUnicodeExtraField.parseFromLocalFileData(AbstractUnicodeExtraField.java:172)
> at
> org.apache.commons.compress.archivers.zip.ExtraFieldUtils.parse(ExtraFieldUtils.java:180)
> at
> org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtra(ZipArchiveEntry.java:620)
> {code}
> As I understand the specification in Section 4.6.8 and 4.6.9 when the version
> is unknown the information shoule be ignored.
> Changes MAY NOT be backward compatible so this extra field *SHOULD NOT be
> used if the version is not recognized*.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)