[
https://issues.apache.org/jira/browse/COMPRESS-591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17414152#comment-17414152
]
Peter Lee commented on COMPRESS-591:
------------------------------------
Hi [~larhzu]
Thank you for your reporting.
I noticed that there are some `downsides` to enable this. I would prefer to
introduce a new option to enable this, but not to enable this by default.
BTW, a PR in github is always welcome.
> Fix decoding of 7z files containing LZMA streams with end marker
> ----------------------------------------------------------------
>
> Key: COMPRESS-591
> URL: https://issues.apache.org/jira/browse/COMPRESS-591
> Project: Commons Compress
> Issue Type: Bug
> Components: Archivers
> Affects Versions: 1.21
> Reporter: Lasse Collin
> Priority: Major
> Attachments: lzma-with-eos.7z
>
>
> Some uncommon but valid .7z files contain LZMA streams that use the end of
> stream marker. Currently Commons Compress together with XZ for Java considers
> such files to be corrupt.
> XZ for Java 1.9 added a new methodÂ
> [LZMAInputStream.enableRelaxedEndCondition()|https://tukaani.org/xz/xz-javadoc/org/tukaani/xz/LZMAInputStream.html#enableRelaxedEndCondition()]
> specifically for this issue. To use this feature in Commons Compress, a
> change is needed to the "decode" function in
> src/main/java/org/apache/commons/compress/archivers/sevenz/LZMADecoder.java:
> {{- return new LZMAInputStream(in, uncompressedLength, propsByte, dictSize);}}
> {{+ final LZMAInputStream lzmaIn = new LZMAInputStream(in,
> uncompressedLength, propsByte, dictSize);}}
> {{+ lzmaIn.enableRelaxedEndCondition();}}
> {{+ return lzmaIn;}}
> A tiny test file is attached (thanks to Simon for providing it). Another test
> file "sheet.7z" can be found from
> <[https://sourceforge.net/p/lzmautils/discussion/708858/thread/822d80d5ea/]>.
> XZ for Java 1.9 is already a few months old, so I apologize for not reporting
> this earlier.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)