Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-4573

NPE/ concurrent modification exception

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.3.24
    • Fix Version/s: 2.3.28, 2.5
    • Component/s: None
    • Labels:
      None

      Description

      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.

      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:
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                abrin adam brin
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: