Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-65545

ConcurrentModification when storing preferences are triggered by some use cases

Details

    Description

      Changes for LPS-56505 produced side-effects. Now retrieving and storing PortalPreferences may produce ConcurrentModificationException s if there are concurrent access to the preferences API. It is correctly managed in SessionTreeJSClicks.java.

      The fix needed here will correctly manage concurrent modifications to portal preferences.

      Here's a excerpt of the log in which a stack trace can be seen when editing page versions is done by two users at the same time.

      [LayoutStagingHandler:137] java.util.ConcurrentModificationException
      java.util.ConcurrentModificationException
      	at com.liferay.portlet.PortalPreferencesImpl.validateStore(PortalPreferencesImpl.java:379)
      	at com.liferay.portlet.PortalPreferencesImpl.setValue(PortalPreferencesImpl.java:243)
      	at com.liferay.portal.staging.StagingImpl.deleteRecentLayoutRevisionId(StagingImpl.java:2023)
      	at com.liferay.portal.staging.StagingImpl.setRecentLayoutRevisionId(StagingImpl.java:2492)
      	at com.liferay.portal.staging.StagingImpl.setRecentLayoutRevisionId(StagingImpl.java:1626)
      	at sun.reflect.GeneratedMethodAccessor2593.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at com.liferay.portal.security.lang.DoPrivilegedHandler$InvokePrivilegedExceptionAction.run(DoPrivilegedHandler.java:167)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(DoPrivilegedHandler.java:100)
      	at com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(DoPrivilegedHandler.java:56)
      	at com.sun.proxy.$Proxy694.setRecentLayoutRevisionId(Unknown Source)
      	at com.liferay.portal.kernel.staging.StagingUtil.setRecentLayoutRevisionId(StagingUtil.java:459)
      	at com.liferay.portal.model.LayoutStagingHandler._getLayoutRevision(LayoutStagingHandler.java:236)
      	at com.liferay.portal.model.LayoutStagingHandler.<init>(LayoutStagingHandler.java:134)
      	at com.liferay.portal.model.LayoutStagingHandler.<init>(LayoutStagingHandler.java:57)
      	at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.getProxiedLayout(LayoutLocalServiceStagingAdvice.java:544)
      	at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.wrapLayout(LayoutLocalServiceStagingAdvice.java:574)
      	at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.wrapLayouts(LayoutLocalServiceStagingAdvice.java:619)
      	at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.wrapReturnValue(LayoutLocalServiceStagingAdvice.java:644)
      	at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.invoke(LayoutLocalServiceStagingAdvice.java:179)
      	at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
      	at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
      	at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
      	at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
      	at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
      	at com.sun.proxy.$Proxy210.getLayouts(Unknown Source)
      	at com.liferay.portal.service.LayoutLocalServiceUtil.getLayouts(LayoutLocalServiceUtil.java:961)
      	at com.liferay.portal.util.LayoutLister.getLayoutView(LayoutLister.java:47)
      	at jsp_servlet._html._portlet._layouts_admin.__add_layout._jspService(__add_layout.java:889)
      	at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
      	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
      	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
      	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:574)
      	at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:480)
      	at com.liferay.portal.servlet.DirectServletPathRegisterDispatcher.include(DirectServletPathRegisterDispatcher.java:55)
      	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
      	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
      	at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:295)
      	at com.liferay.taglib.util.IncludeTag.doInclude(IncludeTag.java:192)
      	at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:83)
      	at jsp_servlet._html._portlet._dockbar.__add_panel._jsp__tag17(__add_panel.java:1142)
      	at jsp_servlet._html._portlet._dockbar.__add_panel._jspService(__add_panel.java:859)
      	at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
      	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
      	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
      	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:574)
      	at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:480)
      	at com.liferay.portal.servlet.DirectServletPathRegisterDispatcher.include(DirectServletPathRegisterDispatcher.java:55)
      	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
      	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
      	at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:295)
      	at com.liferay.taglib.util.IncludeTag.doInclude(IncludeTag.java:192)
      	at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:83)
      	at jsp_servlet._html._common._themes.__portlet._jspService(__portlet.java:3137)
      	at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
      	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
      	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
      	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:574)
      	at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:480)
      	at com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:331)
      	at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:128)
      	at com.liferay.portal.struts.PortletRequestProcessor.doInclude(PortletRequestProcessor.java:370)
      	at com.liferay.portal.struts.PortletRequestProcessor.doForward(PortletRequestProcessor.java:338)
      	at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:239)
      	at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:302)
      	at com.liferay.portal.struts.PortletRequestProcessor.processForwardConfig(PortletRequestProcessor.java:478)
      	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
      	at com.liferay.portal.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:234)
      	at com.liferay.portlet.StrutsPortlet.include(StrutsPortlet.java:296)
      	at com.liferay.portlet.StrutsPortlet.doView(StrutsPortlet.java:157)
      	at com.liferay.portal.kernel.portlet.LiferayPortlet.doDispatch(LiferayPortlet.java:213)
      	at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
      	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103)
      	at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:55)
      	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
      	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
      	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:597)
      	at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:656)
      	at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:362)
      	at jsp_servlet._html._portal.__render_portlet._jspService(__render_portlet.java:1308)
      	at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
      	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
      	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
      	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:574)
      	at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:480)
      	at com.liferay.portal.servlet.DirectServletPathRegisterDispatcher.include(DirectServletPathRegisterDispatcher.java:55)
      	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
      	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
      	at com.liferay.portlet.PortletContainerImpl._doRender(PortletContainerImpl.java:655)
      	at com.liferay.portlet.PortletContainerImpl.render(PortletContainerImpl.java:138)
      	at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:141)
      	at sun.reflect.GeneratedMethodAccessor1101.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at com.liferay.portal.security.lang.DoPrivilegedHandler$InvokePrivilegedExceptionAction.run(DoPrivilegedHandler.java:167)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(DoPrivilegedHandler.java:100)
      	at com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(DoPrivilegedHandler.java:56)
      	at com.sun.proxy.$Proxy125.render(Unknown Source)
      	at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:126)
      	at com.liferay.portal.kernel.portlet.PortletContainerUtil.render(PortletContainerUtil.java:156)
      	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:395)
      	at com.liferay.portal.action.LayoutAction.doExecute(LayoutAction.java:200)
      	at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:95)
      	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
      	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
      	at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:179)
      	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
      	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:751)
      	at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:549)
      	at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:526)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
      	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
      	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
      	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:293)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.monitoring.MonitoringFilter.processFilter(MonitoringFilter.java:94)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:574)
      	at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:272)
      	at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:156)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
      	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
      	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
      	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
      	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:360)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:293)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:243)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.monitoring.MonitoringFilter.processFilter(MonitoringFilter.java:94)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:86)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:267)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:574)
      	at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:272)
      	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:320)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
      	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
      	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
      	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
      	at com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:57)
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119)
      	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
      	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3367)
      	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
      	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
      	at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
      	at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
      	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
      	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
      	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
      	at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
      	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
      	at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)
      

      Steps to reproduce:

      1. Download Apache JMeter and start it up.
      2. In a clean bundle, enable staging with Enabled on public pages option checked.
      3. Execute attached JMeter script.
      4. Check generated logs

      Expected behavior: no java.util.ConcurrentModificationException exists in logs
      Actual behavior: java.util.ConcurrentModificationException exists in logs.

      Attachments

        Issue Links

          Activity

            People

              shitian.zhang Shitian "Shelton" Zhang (Inactive)
              cleydyr.albuquerque Cleydyr Albuquerque (Inactive)
              Marta Elicegui Marta Elicegui
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                6 years, 9 weeks, 6 days ago

                Packages

                  Version Package
                  6.2.X EE