You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2021/07/14 21:46:00 UTC

[jira] [Comment Edited] (COMPRESS-582) Pack200CompressorOutputStream fails at runtime in 1.21 if ASM 4.0+ is used

    [ https://issues.apache.org/jira/browse/COMPRESS-582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17380873#comment-17380873 ] 

Gary D. Gregory edited comment on COMPRESS-582 at 7/14/21, 9:45 PM:
--------------------------------------------------------------------

Feel free to provide a PR on GitHub ;) I see the current version of asm is 9.2 which I think we should target as opposed to whatever antique version we inherited from the Harmony port.


was (Author: garydgregory):
Feel free to provide a PR on GitHub ;-) I see the current version of asm is 9.2 which I think we should target as opposed to whatever antique version we inherited from the Harmon port.

> 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
>
> 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)