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.
>

Reply via email to