Hm... I thought we switched to ASM 7.0 in struts-2-5-x branch - at least in the master branch we have it which means Struts 2.6 supports JDK 11
czw., 17 sty 2019 o 14:11 Sebastian Götz <s.go...@inform-technology.de> napisał(a): > 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. >