Paul Nicolucci created MYFACES-4182:
---------------------------------------

             Summary: javax.faces.component.search.ComponentNotFoundException
                 Key: MYFACES-4182
                 URL: https://issues.apache.org/jira/browse/MYFACES-4182
             Project: MyFaces Core
          Issue Type: Bug
          Components: JSR-372
    Affects Versions: 2.3.0-beta
            Reporter: Paul Nicolucci


I noticed a behavior difference when using a composite component and ajax 
between jsf 2.3 and jsf 2.2. I've attached a test application that reproduces.

JSF 2.2 Behavior when form prependId=false:

If we reference the outputText id in the render attribute with the form id 
prepended then the page is successfully rendered (testpage1.jsf)

If we reference the outputText id without the form id prepended we get the 
following failure (testpage2.jsf) when requesting the page:

javax.faces.FacesException: Component with id:output2 not found
        at 
org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer.getComponentId(HtmlAjaxBehaviorRenderer.java:505)
        at 
org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer.build(HtmlAjaxBehaviorRenderer.java:467)
        at 
org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer.mapToString(HtmlAjaxBehaviorRenderer.java:439)
        at 
org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer.makeAjax(HtmlAjaxBehaviorRenderer.java:158)
        at 
org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer.getScript(HtmlAjaxBehaviorRenderer.java:102)
        at 
javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:101)
        at 
org.apache.myfaces.shared.renderkit.html.CommonEventUtils.renderBehaviorizedAttribute(CommonEventUtils.java:188)
        at 
org.apache.myfaces.shared.renderkit.html.CommonEventUtils.renderBehaviorizedAttribute(CommonEventUtils.java:120)
        at 
org.apache.myfaces.shared.renderkit.html.CommonEventUtils.renderBehaviorizedEventHandlers(CommonEventUtils.java:283)
        at 
org.apache.myfaces.shared.renderkit.html.CommonEventUtils.renderBehaviorizedEventHandlers(CommonEventUtils.java:202)
 




JSF 2.3 Behavior when form preprendId=false:

If we reference the outputText id in the render attribute with the form id 
prepended then we get the following failure (testpage1.jsf) when requesting the 
page:

Cannot find component for expression "testForm:output2" referenced from 
"input1:input".

viewId=/testpage1.xhtml
location=C:\libertyGit\libertycdopen\WS-CD-Open\dev\build.image\wlp\usr\servers\test1\apps\expanded\TestApp.war\testpage1.xhtml
phaseId=RENDER_RESPONSE(6)

Caused by:
javax.faces.component.search.ComponentNotFoundException - Cannot find component 
for expression "testForm:output2" referenced from "input1:input".
at 
org.apache.myfaces.component.search.SearchExpressionHandlerImpl.resolveClientId(SearchExpressionHandlerImpl.java:104)

If we reference the outputText id without the form id prepended then the page 
is successfully rendered (testpage2.jsf)





--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to