[ 
https://issues.jboss.org/browse/RF-7248?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Koray Gecici updated RF-7248:
-----------------------------

    Attachment: infinite_loop.JPG


We are facing this issue at production. The result of bug is %100 CPU 
consumption. So we have to stop / start out web application :(

We detected problem using Visual VM and JConsole tools. The Visual VM 
screenshot is attached. Thread stack trace is below:

Name: http-81-46
State: RUNNABLE
Total blocked: 1,314  Total waited: 327

Stack trace: 
java.util.HashMap.get(HashMap.java:303)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:965)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:984)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:943)
org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:361)
org.richfaces.renderkit.AbstractRowsRenderer.process(AbstractRowsRenderer.java:82)
org.richfaces.model.ModifiableModel.walk(ModifiableModel.java:156)
org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1133)
org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:104)
org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:88)
org.richfaces.renderkit.AbstractTableRenderer.encodeTBody(AbstractTableRenderer.java:90)
org.richfaces.renderkit.AbstractTableRenderer.encodeChildren(AbstractTableRenderer.java:97)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:166)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)
org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)
org.ajax4jsf.component.UIAjaxRegion.encodeAjax(UIAjaxRegion.java:263)
org.ajax4jsf.component.AjaxViewRoot$4.invokeContextCallback(AjaxViewRoot.java:492)
javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:546)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
tr.com.provus.common.jsf.postback.PostbackViewHandler.renderView(PostbackViewHandler.java:101)
tr.com.provus.common.jsf.view.handler.DynamicViewHandler.renderView(DynamicViewHandler.java:81)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
tr.com.provus.common.jsf.servlet.DelegateFacesServlet.service(DelegateFacesServlet.java:268)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:246)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)



> a4j creates infinite HashMap.get loop
> -------------------------------------
>
>                 Key: RF-7248
>                 URL: https://issues.jboss.org/browse/RF-7248
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-tables
>    Affects Versions: 3.3.0, 3.3.3.Final
>            Reporter: Nida Cibulskyte
>            Assignee: Nick Belaevski
>              Labels: ENT
>             Fix For: 3.3.4.BETA1, ENT_3.3.1.SP2
>
>         Attachments: infinite_loop.JPG, screenshot-1.jpg
>
>
> Concurrent requests on a4j components causes infinite loop. While one request 
> is being proccessed by restoreChildState method, another request is senT for 
> proccessing. It causes the code to get stuck in hashmap.get() as the hashmap 
> is not synchronized and causes infinite loop.
> 2009 05 25 09:41:43 ERROR demo.NameBean  - 
> java.util.HashMap.get(HashMap.java:303)
> 2009 05 25 09:41:43 ERROR demo.NameBean  - 
> org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:965)
> 2009 05 25 09:41:43 ERROR demo.NameBean  - 
> org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:982)
> 2009 05 25 09:41:43 ERROR demo.NameBean  - 
> org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:982)
> .......................

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to