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)

Reply via email to