High CPU due to RichFaces concurrent access to the request attributes HashMap
Issue
- High CPU.
- The threads using CPU have the following stack trace:
http-10.20.81.200-17180-11" daemon prio=10 tid=0x0000002bbdd01c00 nid=0x19be runnable [0x0000000048db3000..0x0000000048db5ab0] java.lang.Thread.State: RUNNABLE at java.util.HashMap.get(HashMap.java:305) at org.apache.catalina.connector.Request.getAttribute(Request.java:878) at org.apache.catalina.connector.RequestFacade.getAttribute(RequestFacade.java:263) at javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:82) at com.sun.faces.context.RequestMap.put(ExternalContextImpl.java:1086) at org.ajax4jsf.event.AjaxPhaseListener.afterPhase(AjaxPhaseListener.java:81) at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:175) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:114) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:104) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:286) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) ...
Environment
- JBoss Enterprise Application Platform (EAP)
- Richfaces
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.