And we do accept Pull Requests :-) https://github.com/apache/struts
2014-06-18 10:25 GMT+02:00 Lukasz Lenart <lukaszlen...@apache.org>: > It can be part of 2.3.x as well, the plan is to be compatible with > JDK8 but not depend on it. Lambdas are implemented as anonymous > classes as far I can recall, so maybe improving ClassFinder in that > area would do the trick ;-) > > 2014-06-18 10:20 GMT+02:00 Paweł Wielgus <poulw...@gmail.com>: >> Hi Łukasz, >> can i somehow help with this? >> >> Is it all about classloader black magic >> or a normal programer can make any progress with this subject. >> >> I understand that JDK8 is much more than just lambdas, >> so maybe i would be able to help with this "lambdas only" problem. >> >> I would be happy if S2.3.x would be abble to load such action classes >> but would not be fully compatible with JDK8. >> But maybe this is all or nothing case? >> >> Best greetings, >> Paweł Wielgus. >> >> >> >> >> 2014-06-18 10:08 GMT+02:00 Lukasz Lenart <lukaszlen...@apache.org>: >>> S2 isn't JDK8 compatible, it will be case for S2.5 >>> >>> >>> 2014-06-18 10:04 GMT+02:00 Paweł Wielgus <poulw...@gmail.com>: >>>> Hi all, >>>> does anyone know >>>> if this these exceptions [1][2] i see when staring application >>>> are the result of using lambda expressions inside actions? >>>> >>>> If i just move these lambdas out of action body >>>> to another class (helper) >>>> everything works just fine. >>>> >>>> How can i help to resolve this? >>>> I would love to have lambdas in action methods. >>>> >>>> Struts version is 2.3.16.3 >>>> Java version is 1.8.0_05 >>>> >>>> Best greetings, >>>> Paweł Wielgus. >>>> >>>> >>>> >>>> [1] - for action defined in struts.xml >>>> >>>> SEVERE: Unable to read class >>>> [com.ppp.elsevier.struts.action.JournalCoverAction] >>>> java.lang.ArrayIndexOutOfBoundsException: 51966 >>>> at org.objectweb.asm.ClassReader.readUTF8(Unknown Source) >>>> at org.objectweb.asm.ClassReader.readClass(Unknown Source) >>>> at org.objectweb.asm.ClassReader.accept(Unknown Source) >>>> at org.objectweb.asm.ClassReader.accept(Unknown Source) >>>> at >>>> com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:717) >>>> at >>>> com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:112) >>>> at >>>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390) >>>> at >>>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347) >>>> at >>>> org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) >>>> at >>>> com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:268) >>>> at >>>> com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) >>>> at >>>> org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445) >>>> at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489) >>>> at >>>> org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) >>>> at >>>> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) >>>> at >>>> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:298) >>>> at >>>> org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:119) >>>> at >>>> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4076) >>>> at >>>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4730) >>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) >>>> at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) >>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) >>>> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) >>>> at org.apache.catalina.core.StandardService.start(StandardService.java:525) >>>> at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) >>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:595) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> at java.lang.reflect.Method.invoke(Method.java:483) >>>> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) >>>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) >>>> >>>> >>>> >>>> [2] - for action found by convention plugin >>>> >>>> SEVERE: Unable to read class >>>> [com.ppp.elsevier.struts.action.admin.reports.BuyedBookCategoriesAction] >>>> java.lang.ArrayIndexOutOfBoundsException: 12919 >>>> 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 >>>> com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:716) >>>> at >>>> com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:112) >>>> at >>>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390) >>>> at >>>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347) >>>> at >>>> org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) >>>> at >>>> com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:268) >>>> at >>>> com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) >>>> at >>>> org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445) >>>> at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489) >>>> at >>>> org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) >>>> at >>>> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) >>>> at >>>> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:298) >>>> at >>>> org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:119) >>>> at >>>> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4076) >>>> at >>>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4730) >>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) >>>> at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) >>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) >>>> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) >>>> at org.apache.catalina.core.StandardService.start(StandardService.java:525) >>>> at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) >>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:595) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> at java.lang.reflect.Method.invoke(Method.java:483) >>>> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) >>>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>> For additional commands, e-mail: user-h...@struts.apache.org >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>> For additional commands, e-mail: user-h...@struts.apache.org >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >> --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org