[
https://issues.apache.org/jira/browse/COMPRESS-582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17399086#comment-17399086
]
Alex Landau commented on COMPRESS-582:
--
Thank you [~blecher-at] for the fix!
> Pack200CompressorOutputStream fails at runtime in 1.21 if ASM 4.0+ is used
> --
>
> Key: COMPRESS-582
> URL: https://issues.apache.org/jira/browse/COMPRESS-582
> Project: Commons Compress
> Issue Type: Bug
>Affects Versions: 1.21
>Reporter: Alex Landau
>Priority: Major
> Fix For: 1.22
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> I just tried to upgrade an existing codebase to commons-compress 1.21 (from
> 1.20, which was working correctly) and encountered the following error in
> code trying to use the Pack200CompressorOutputStream:
> {code:java}
> java.lang.IncompatibleClassChangeError: class
> org.apache.commons.compress.harmony.pack200.Segment can not implement
> org.objectweb.asm.ClassVisitor, because it is not an interface
> (org.objectweb.asm.ClassVisitor is in unnamed module of loader 'app')
> {code}
> The Segment class {{implements}} rather than {{extends}} ClassVisitor. It
> looks like commons-compress is built against asm 3.2. Per
> [https://asm.ow2.io/versions.html], ClassVisitor was converted from an
> interface to an abstract class in asm 4.0, which was released in 2011, "in
> order to ensure backward binary compatibility in future ASM versions". To be
> clear, our project needs a more recent asm version on the classpath to
> support other libraries.
> I have a repro of the error here, in case it helps:
> [https://github.com/AlexLandau/commons-compress-asm-error]
> I want to add that I appreciate the effort you are making to support pack200
> in a way that will outlast the JDK's native support.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)