[ https://issues.apache.org/jira/browse/TAP5-2769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17784958#comment-17784958 ]
Ben Weidig commented on TAP5-2769: ---------------------------------- Thanks for the PR! If AnnotationNode is really the sole change to ASM, I'd even argue not to shadow the dependency at all and use it as a "normal" one and change the imports in Tapestry instead. After a quick glance at the AnnotationNode.accept method, it seems it doesn't use anything outside of its scope, so the code could be duplicated into a util instead of using reflection. It's still not the best solution, but accessing it via reflection by using setAccessible feels kinda hacky and I'm not fully aware of the implications due to SecurityManager stuff. https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/reflect/AccessibleObject.html#setAccessible(boolean) > Upgrade ASM to 9.6 to allow running on Java 21 > ---------------------------------------------- > > Key: TAP5-2769 > URL: https://issues.apache.org/jira/browse/TAP5-2769 > Project: Tapestry 5 > Issue Type: Task > Components: plastic > Affects Versions: 5.8.3 > Reporter: Chris Poulsen > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > I have a local version where the shadowing of ASM is done by Gradle to easier > maintain the ASM copy in the future. > I'll create a PR with the changes on Github. > The copied version had a single change to the ASM sources (in order to access > the static package protected method > {code:java} > AnnotationNode.accept > {code} > . > I did a quick hack with reflection to access it instead, there is definitely > room for improvement there, if anyone wants to take a stab at it. > Edit: PR https://github.com/apache/tapestry-5/pull/46 -- This message was sent by Atlassian Jira (v8.20.10#820010)