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)

Reply via email to