Hm... strange but our builds are passing on JDK 11 https://builds.apache.org/view/S-Z/view/Struts/job/Struts-master-JDK11/ also on Travis https://travis-ci.org/apache/struts
pt., 18 sty 2019 o 08:46 Sebastian Götz <s.go...@inform-technology.de> napisał(a): > Okay. > > I have taken a look at the struts-2-5-x branch in github. There is a > global property in the struts-parentof that defines the version for ASM: > > <asm.version>5.2</asm.version> > > The struts-masterpom of the current github *master branch* has: > > <asm.version>7.0</asm.version> > > But when I look into DefaultClassFinder$InfoBuildingVisitorclass (line > 461) of the *master branch* there is still ASM 5 used: > > public class InfoBuildingVisitor extends ClassVisitor { > private Info info; > private ClassFinder classFinder; > > public InfoBuildingVisitor(ClassFinder classFinder) { > * super(Opcodes.ASM5);* > this.classFinder = classFinder; > } > > So first step would be to change this coupling to ASM's version 7 API. > And if possible back-porting this to the struts-2-5-x branch. > Right? > > As I am not familiar with ASM at all, I cannot even estimate whether > this is that has to be done or not. > But I offer any support I can give to have Java 11 ready as soon as > possible. > > Kind regards > > Sebastain > > Am 17.01.2019 um 14:45 schrieb Lukasz Lenart: > > 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. > >> > > -- > 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. >