Description
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.
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)
The AbstractAnnotationBuilder subclass tries to cast an int[] to an Object[].