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.