You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (JIRA)" <ji...@apache.org> on 2014/12/15 07:37:13 UTC

[jira] [Commented] (WW-4431) Java 8 support - lambda in action classes

    [ https://issues.apache.org/jira/browse/WW-4431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14246369#comment-14246369 ] 

Lukasz Lenart commented on WW-4431:
-----------------------------------

{quote}
looking through ASM releases
i see that one would need version >= 5.0 to have Java8 full support:

http://forge.ow2.org/forum/forum.php?forum_id=2302

and in Struts 2.3.16 there is ASM in 3.3 version.

So maybe it's realy that simple :-)
I just hope it won't breake to much in current codebase.
{quote}

> Java 8 support - lambda in action classes
> -----------------------------------------
>
>                 Key: WW-4431
>                 URL: https://issues.apache.org/jira/browse/WW-4431
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Core Actions
>    Affects Versions: 2.3.16.3
>         Environment: Jdk 1.8
>            Reporter: Paweł Wielgus
>            Priority: Minor
>              Labels: java8
>             Fix For: 2.5
>
>
> When there is any lamba expression placed inside of action class, during startup struts is presenting error like below:
> {noformat}
> com.opensymphony.xwork2.util.logging.commons.CommonsLogger error
> SEVERE: Unable to read class [com.ppp.elsevier.struts.action.admin.spa.bannerBox.SampleAction]
> java.lang.ArrayIndexOutOfBoundsException: 10572
> 	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)
> {noformat}
> After this exception application is starting normally but SampleAction is not configured and not accessible.
> If lambda expression is removed from action class (i.e. the lambda is moved to non action class and referenced from inside action), all is working without problems.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)