Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix GetNameClassWriter errors during remap on JDK11 classes #23

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

redcape
Copy link

@redcape redcape commented May 27, 2021

Although the remap process for ASM8 supports higher JDKs, remapping fails on some classes because GetNameClassWriter (which only gets the class name) was throwing an error when processing JDK11 classes with newer features like those from org.jgroups:jgroups.

Example errors:

2021/05/27 04:24:11 WARN ClassTransformerJarProcessor[main]: Failed to read class org/jgroups/protocols/Locking.class: java.lang.UnsupportedOperationException: This feature requires ASM7
2021/05/27 04:24:11 WARN ClassTransformerJarProcessor[main]: Failed to read class org/jgroups/protocols/SSL_KEY_EXCHANGE$SessionVerifier.class: java.lang.UnsupportedOperationException: This feature requires ASM7

The fix here is to simply change ASM5 to ASM8, the highest stable version / matching version of the current depended-on ASM.

Additionally, we change StringReader to use the higher ASM version as well to prevent errors for the strings command, but do not make any specific changes to process/display additional strings for the newer features available since ASM5 in ClassVisitor.

Although the remap process for ASM8 supports higher JDKs, remapping fails on some classes because GetNameClassWriter (which only gets the class name) was throwing an error when processing JDK11 classes with newer features like those from org.jgroups:jgroups.

Example errors:
```
2021/05/27 04:24:11 WARN ClassTransformerJarProcessor[main]: Failed to read class org/jgroups/protocols/Locking.class: java.lang.UnsupportedOperationException: This feature requires ASM7
2021/05/27 04:24:11 WARN ClassTransformerJarProcessor[main]: Failed to read class org/jgroups/protocols/SSL_KEY_EXCHANGE$SessionVerifier.class: java.lang.UnsupportedOperationException: This feature requires ASM7
```
The fix here is to simply change ASM5 to ASM8, the highest stable version / matching version of the current depended-on ASM.

Additionally, we change StringReader to use the higher ASM version as well to prevent errors for the `strings` command, but do not make any specific changes to process/display additional strings for the newer features available since ASM5 in ClassVisitor.
@etinquis
Copy link

+1 for merging this, it was invaluable for fixing the linked issue.

@redcape
Copy link
Author

redcape commented Dec 15, 2023

@etinquis I think this project is abandoned. I had to do an internal fork with just this commit.

@etinquis
Copy link

@redcape Yeah it seems like it, but one can only hope 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants