Mirek Hankus created WW-5207:
--------------------------------
Summary: Convention Plugin - support for ASM 9
Key: WW-5207
URL: https://issues.apache.org/jira/browse/WW-5207
Project: Struts 2
Issue Type: Bug
Components: Plugin - Convention
Affects Versions: 6.0.0
Reporter: Mirek Hankus
According to https://issues.apache.org/jira/browse/WW-5148 support for ASM 9.2
was implemented which implied support for JAVA 17. Unfortunately, this is not
true, because conention plugin fails to start when app is compiled with JAVA17
This issue is very similar to https://issues.apache.org/jira/browse/WW-5005
which concerned.
Convention plugin contains code
{code:java}
public class InfoBuildingVisitor extends ClassVisitor {
private Info info;
private ClassFinder classFinder;
public InfoBuildingVisitor(ClassFinder classFinder) {
super(Opcodes.ASM7);
this.classFinder = classFinder;
}{code}
which limits usage only to ASM7
Right now following exception it thrown if you try to run struts 6.0 app
compiled with java 17
{code:java}
java.lang.UnsupportedOperationException: PermittedSubclasses requires ASM9
at
org.objectweb.asm.ClassVisitor.visitPermittedSubclass(ClassVisitor.java:266)
~[asm-9.2.jar:9.2]
at org.objectweb.asm.ClassReader.accept(ClassReader.java:706)
~[asm-9.2.jar:9.2]
at org.objectweb.asm.ClassReader.accept(ClassReader.java:424)
~[asm-9.2.jar:9.2]
at
org.apache.struts2.convention.DefaultClassFinder.readClassDef(DefaultClassFinder.java:445)
~[struts2-convention-plugin-6.0.0.jar:6.0.0]
at
org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:93)
~[struts2-convention-plugin-6.0.0.jar:6.0.0]
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:399)
~[struts2-convention-plugin-6.0.0.jar:6.0.0]
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:381)
~[struts2-convention-plugin-6.0.0.jar:6.0.0]
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:337)
~[struts2-convention-plugin-6.0.0.jar:6.0.0]
at
org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52)
~[struts2-convention-plugin-6.0.0.jar:6.0.0]
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:228)
~[struts2-core-6.0.0.jar:6.0.0]
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:65)
~[struts2-core-6.0.0.jar:6.0.0]
at
org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:1035)
~[struts2-core-6.0.0.jar:6.0.0]
at
org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:516)
~[struts2-core-6.0.0.jar:6.0.0]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:549)
~[struts2-core-6.0.0.jar:6.0.0]
at
org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:44)
~[struts2-core-6.0.0.jar:6.0.0]
at
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:60)
~[struts2-core-6.0.0.jar:6.0.0]
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)