Hi folks,

it appears that there is some work left in the convention plugin. As I can see from my IVY resolve process this plugin drags in asm 5.2. From its sources it looks like it supports class version up to 1.8 (class version 52). As we compile with JDK 11 already (class version 55) we get a lot of these exceptions:

 java.lang.IllegalArgumentException
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.apache.struts2.convention.DefaultClassFinder.readClassDef(DefaultClassFinder.java:461)     at org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:93)     at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:395)     at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:377)     at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:333)     at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52)     at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:206)     at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)     at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957)     at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496)
    at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73)     at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61)     at eu.inform.servlet.context.URIExcludeFilter.init(URIExcludeFilter.java:37)     at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270)     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251)     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102)     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4491)     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)     at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)     at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:261)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:801)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:695)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)

I tried to exclude asm 5.2 on favor of 7.0 which works from the dependency resolving side. But the Struts2 ClassVisitor implementation is tied to ASM 5:

public class InfoBuildingVisitor extends ClassVisitor {
        private Info info;
        private ClassFinder classFinder;

        public InfoBuildingVisitor(ClassFinder classFinder) {
            super(Opcodes.ASM5);
            this.classFinder = classFinder;
        }
...
}

Therefore this leads to the following problem:

java.lang.UnsupportedOperationException: This feature requires ASM7
    at org.objectweb.asm.ClassVisitor.visitNestMember(ClassVisitor.java:236)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:651)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
    at org.apache.struts2.convention.DefaultClassFinder.readClassDef(DefaultClassFinder.java:462)     at org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:93)     at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:395)     at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:377)     at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:333)     at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52)     at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:206)     at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)     at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957)     at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496)
    at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73)     at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61)     at eu.inform.servlet.context.URIExcludeFilter.init(URIExcludeFilter.java:37)     at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270)     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251)     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102)     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4491)     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)     at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)     at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:261)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:801)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:695)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)

Can someone verfiy that and propose a fix?

Kind regards,

Sebastian


Am 15.01.2019 um 09:45 schrieb Sebastian Götz:
Great to hear that!


Am 15.01.2019 um 09:37 schrieb Yasser Zamani:
Hi Sebastian,

Yes the release will be ready this month hopefully this week already ☺

Kind Regards.


From: Sebastian Götz<s.go...@inform-technology.de>
Sent: Tuesday, January 15, 2019 10:51 AM
To: Yasser Zamani<yasserzam...@apache.org>
Subject: Re: Java 11 support

Hi Yasser,

sure! We are not in a hurry :-) but really looking forward to this release. I 
tried with the 2.5.18 yesterday.
But then I will await the 2.5.20 release with pleasure.

I know this sort of question sucks but will the release be ready this month 
already or will it take somewhat longer.

Kind regards,

Sebastian
Am 14.01.2019 um 19:06 schrieb Yasser Zamani:

Hi Sebastian,



I'm pleased to announce it seems we were able to add both java 9 and 11

supports into Struts 2.5.20. Could you please wait a few days for its

release and then test the bits? It currently can pass all tests with all

jdks (see [1]) but it's so great if you will be able to test it in

production also.



Thanks for using Struts!



Kind Regards.



[1]https://travis-ci.org/apache/struts/builds/456910100





On 1/14/2019 11:13 AM, Sebastian Götz wrote:

Hello all.



I searched through the website and the issue tracker to find any roadmap

info concerning Java 11 support.

At the moment I try upgrading our webapp to Tomcat 9 with OpenJDK 11. I

now from past upgrades that we had to use a Java8-support-plugin for a

while.

Now with JDK 11 it looks a bit more complex getting the Java 9 module

stuff together correctly. But I think someone must have a plan for this

migration.



So the question is: how and when is it going to be possible to use

struts2 with Java 11?



Kind regards



Sebastian Götz





---------------------------------------------------------------------

To unsubscribe, 
e-mail:user-unsubscr...@struts.apache.org<mailto:user-unsubscr...@struts.apache.org>

For additional commands, 
e-mail:user-h...@struts.apache.org<mailto:user-h...@struts.apache.org>

--
Mit freundlichen Grüßen

Sebastian Götz

iNFORM Technology GmbH
Niederlassung Albstadt
Berliner Straße 24
72458 Albstadt-Ebingen

Tel: +49 7431 9816090
Fax: +49 7431 9816092
s.go...@inform-technology.de<mailto:s.go...@inform-technology.de>
http://www.inform-technology.de/

*****************************************************

Zentrale Stockach:
Bodenseeallee 18
D-78333 Stockach
Tel: +49 7771 9282 494

*****************************************************

Geschäftsführer: Dipl.-Ing. (FH) Heinz Roth | Handelsregister: HRB 715948, 
Amtsgericht Freiburg | USt-ID Nr.: DE312290945

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. 
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten 
haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. 
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht 
gestattet.

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and destroy this e-mail. Any unauthorised 
copying, disclosure or distribution of the material in this e-mail is strictly 
forbidden.

--
Mit freundlichen Grüßen

Sebastian Götz

iNFORM Technology GmbH
Niederlassung Albstadt
Berliner Straße 24
72458 Albstadt-Ebingen

Tel: +49 7431 9816090
Fax: +49 7431 9816092
s.go...@inform-technology.de <mailto:s.go...@inform-technology.de>
http://www.inform-technology.de/

*****************************************************

Zentrale Stockach:
Bodenseeallee 18
D-78333 Stockach
Tel: +49 7771 9282 494

*****************************************************

Geschäftsführer: Dipl.-Ing. (FH) Heinz Roth | Handelsregister: HRB 715948, Amtsgericht Freiburg | USt-ID Nr.: DE312290945

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.

This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

--
Mit freundlichen Grüßen

Sebastian Götz

iNFORM Technology GmbH
Niederlassung Albstadt
Berliner Straße 24
72458 Albstadt-Ebingen

Tel: +49 7431 9816090
Fax: +49 7431 9816092
s.go...@inform-technology.de <mailto:s.go...@inform-technology.de>
http://www.inform-technology.de/

*****************************************************

Zentrale Stockach:
Bodenseeallee 18
D-78333 Stockach
Tel: +49 7771 9282 494

*****************************************************

Geschäftsführer: Dipl.-Ing. (FH) Heinz Roth | Handelsregister: HRB 715948, Amtsgericht Freiburg | USt-ID Nr.: DE312290945

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.

This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Reply via email to