You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "adam brin (JIRA)" <ji...@apache.org> on 2015/11/30 15:36:11 UTC

[jira] [Created] (WW-4573) NPE/ concurrent modification exception

adam brin created WW-4573:
-----------------------------

             Summary: NPE/ concurrent modification exception
                 Key: WW-4573
                 URL: https://issues.apache.org/jira/browse/WW-4573
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.3.24
            Reporter: adam brin
            Priority: Minor


Apologies for the lack of contextual information, it appears that there were no other errors logged that add context. But, we're seeing a few of these each day in our production exception logs.  It looks like something may have changed in how the ValueStack has been referenced /called and thus is causing a concurrent modification exception.

{code}
ERROR 2015-11-29 09:21:43,987 389933021 [ajp-bio-8009-exec-6841 []] (CommonsLogger.java:42) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor - null
org.apache.struts2.StrutsException
        at org.apache.struts2.components.UIBean.end(UIBean.java:540) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.views.freemarker.tags.CallbackWriter.afterBody(CallbackWriter.java:84) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at freemarker.core.Environment.visitAndTransform(Environment.java:427) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.UnifiedCall.accept(UnifiedCall.java:107) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.MixedContent.accept(MixedContent.java:54) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visitByHiddingParent(Environment.java:345) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.IfBlock.accept(IfBlock.java:48) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visitByHiddingParent(Environment.java:345) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.MixedContent.accept(MixedContent.java:54) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Macro$Context.runMacro(Macro.java:184) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.invoke(Environment.java:701) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visitByHiddingParent(Environment.java:345) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.IteratorBlock$IterationContext.executeNestedBlockInner(IteratorBlock.java:240) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.IteratorBlock$IterationContext.executeNestedBlock(IteratorBlock.java:220) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:194) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visitIteratorBlock(Environment.java:572) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:78) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.IteratorBlock.accept(IteratorBlock.java:64) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.MixedContent.accept(MixedContent.java:54) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.EscapeBlock.accept(EscapeBlock.java:48) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.MixedContent.accept(MixedContent.java:54) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.process(Environment.java:302) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.template.Template.process(Template.java:325) ~[freemarker-2.3.23.jar:2.3.23]
        at org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:223) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:191) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:369) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:273) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:197) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.tdar.struts.interceptor.HttpMethodInterceptor.intercept(HttpMethodInterceptor.java:29) ~[HttpMethodInterceptor.class:?]
        at org.tdar.struts.interceptor.HttpsInterceptor.doHttpIntercept(HttpsInterceptor.java:52) ~[HttpsInterceptor.class:?]
        at org.tdar.struts.interceptor.HttpsInterceptor.intercept(HttpsInterceptor.java:34) ~[HttpsInterceptor.class:?]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.tdar.struts.interceptor.CacheControlInterceptor.intercept(CacheControlInterceptor.java:40) ~[CacheControlInterceptor.class:?]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.tdar.struts.interceptor.SessionSecurityInterceptor.intercept(SessionSecurityInterceptor.java:85) ~[SessionSecurityInterceptor.class:?]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.tdar.struts.interceptor.ActivityLoggingInterceptor.intercept(ActivityLoggingInterceptor.java:69) ~[ActivityLoggingInterceptor.class:?]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) ~[xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) [xwork-core-2.3.24.1.jar:2.3.24.1]
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) [xwork-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) [struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) [struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) [struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:93) [struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.52.jar:7.0.52]
        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) [sitemesh-2.4.2.jar:?]
        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) [sitemesh-2.4.2.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:91) [struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) [spring-orm-4.2.2.RELEASE.jar:4.2.2.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.2.2.RELEASE.jar:4.2.2.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) [urlrewritefilter-4.0.4.jar:4.0.4]
        at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) [urlrewritefilter-4.0.4.jar:4.0.4]
        at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) [urlrewritefilter-4.0.4.jar:4.0.4]
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389) [urlrewritefilter-4.0.4.jar:4.0.4]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71) [log4j-web-2.4.1.jar:2.4.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [tomcat-catalina-7.0.52.jar:7.0.52]
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) [tomcat-coyote-7.0.52.jar:7.0.52]
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) [tomcat-coyote-7.0.52.jar:7.0.52]
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) [tomcat-coyote-7.0.52.jar:7.0.52]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_66]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_66]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_66]
Caused by: java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) ~[?:1.8.0_66]
        at java.util.ArrayList$Itr.next(ArrayList.java:851) ~[?:1.8.0_66]
        at org.apache.struts2.components.IteratorComponent.end(IteratorComponent.java:333) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.views.freemarker.tags.CallbackWriter.afterBody(CallbackWriter.java:84) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at freemarker.core.Environment.visitAndTransform(Environment.java:427) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.UnifiedCall.accept(UnifiedCall.java:107) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.MixedContent.accept(MixedContent.java:54) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visitByHiddingParent(Environment.java:345) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.IfBlock.accept(IfBlock.java:48) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.MixedContent.accept(MixedContent.java:54) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.visit(Environment.java:324) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.core.Environment.process(Environment.java:302) ~[freemarker-2.3.23.jar:2.3.23]
        at freemarker.template.Template.process(Template.java:325) ~[freemarker-2.3.23.jar:2.3.23]
        at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:158) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:584) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        at org.apache.struts2.components.UIBean.end(UIBean.java:538) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
        ... 119 more
DEBUG 2015-11-29 09:21:44,034 389933068 [ajp-bio-8009-exec-6812 []] (ActivityLoggingInterceptor.java:78) org.tdar.struts.interceptor.ActivityLoggingInterceptor - >> activity end: GET:/search/advanced?groups[0].starti:
{code}



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