[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16674518#comment-16674518 ]
Andrew Fowler commented on TAP5-2588: ------------------------------------- [~bobharner], I noticed you updated the {{--add-modules}} to make JAXB & Common Annotations work for JDK 9+, but it will only be valid for compiling in 9–10 since [those 2 modules are removed from JDK 11+|https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#JDK-8190378]. Instead, going forward, I think Tapestry will need explicit dependencies on: * {{javax.annotation:javax.annotation-api}} * {{javax.xml.bind:jaxb-api}} * {{org.glassfish.jaxb:jaxb-runtime}} It would be also safe to use this for JDK 9–10 instead of the {{--add-modules java.xml.ws.annotation,java.xml.bind}}, at the cost of an extra <2MB of dependencies. ASM 7 will support Java 11 bytecode, but going past Java 9 is going to take substantial effort – e.g., {{tapestry-javadoc}} will need a revamp to use the rewritten Doclet API (the new one got added in 9, and the old one is gone from 10). I suggest Tapestry gets at least one JDK 9 release, just to get it out sooner. > Does not work with Java 9 > ------------------------- > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic > Affects Versions: 5.4.3 > Reporter: Jochen Kemnade > Assignee: Bob Harner > Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)