[richfaces-issues] [JBoss JIRA] Resolved: (RF-7192) Ajax component processing outside of region/form

Ilya Shaikovsky (JIRA) jira-events at lists.jboss.org
Wed May 20 04:11:05 EDT 2009


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

Ilya Shaikovsky resolved RF-7192.
---------------------------------

    Resolution: Rejected


> Ajax component processing outside of region/form
> ------------------------------------------------
>
>                 Key: RF-7192
>                 URL: https://jira.jboss.org/jira/browse/RF-7192
>             Project: RichFaces
>          Issue Type: Bug
>          Components: component-a4j-core
>    Affects Versions: 3.3.0
>            Reporter: Thomas W
>
> RF 3.3.0 GA
> Issue with server side processing of AJAX enabled components that are outside of any region that is requested to be rendered as well as any a:outputPanel with ajaxRendered="true". This happens with tree and table components, for example.
> I could track this down to behavior in UIDataAdapter. With the following change the unwanted processing is turned off:
> public void encodeAjaxChild(FacesContext context, String path,
>   final Set<String> ids, final Set<String> renderedAreas) throws IOException {
> 		boolean isRenderedPath = false;
> 		for (String id : ids) {
> 			if (id.startsWith(path)) {
> 				isRenderedPath = true;
> 			}
> 		}
> 		if (!isRenderedPath) {
> 			return;
> 		}
> With this addition, any component that falls outside the list of requested ids (reRender) will be skipped. This has muted the excessive component processing (processing that would never result in DOM rendering). 
> A real fix would need to allow for processing of outputPanels with ajaxRendered="true". What is the correct fix for this problem?
>     <a:outputPanel id="searchResults" ajaxRendered="false" styleClass="noBorder">
>     <a:region>
>           <h:form id="searchForm" styleClass="noBorder">
>             <rich:scrollableDataTable .... 
>                 <a:support event="onselectionchange"
>                     action="#{someAction.process}" reRender="region1,region2" 
>                     limitToList="true"
>                     status="globalStatus"/>
> Call originates from AjaxChildrenRenderer.encodeAjaxComponent:
> 	    	if (!found) {
> 	    		if (component instanceof AjaxChildrenEncoder) {
> 	    			((AjaxChildrenEncoder) component).encodeAjaxChild(
> 	    					context, currentPath, ids, renderedAreas);
> 	    		} else {
> Stack trace:
> HtmlTree(UIDataAdaptor).encodeAjaxChild(FacesContext, String, Set<String>, Set<String>) line: 454	
> AjaxRegionRenderer(AjaxChildrenRenderer).encodeAjaxComponent(FacesContext, UIComponent, String, Set<String>, Set<String>) line: 104	
> AjaxRegionRenderer(AjaxChildrenRenderer).encodeAjaxChildren(FacesContext, UIComponent, String, Set<String>, Set<String>) line: 67	
> AjaxRegionRenderer(AjaxChildrenRenderer).encodeAjaxComponent(FacesContext, UIComponent, String, Set<String>, Set<String>) line: 115	
> AjaxRegionRenderer(AjaxChildrenRenderer).encodeAjaxChildren(FacesContext, UIComponent, String, Set<String>, Set<String>) line: 67	
> AjaxRegionRenderer(AjaxChildrenRenderer).encodeAjaxComponent(FacesContext, UIComponent, String, Set<String>, Set<String>) line: 115	
> AjaxRegionRenderer(AjaxChildrenRenderer).encodeAjaxChildren(FacesContext, UIComponent, String, Set<String>, Set<String>) line: 67	

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the richfaces-issues mailing list