You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2011/05/06 19:45:03 UTC

[jira] [Resolved] (MYFACES-3125) ValidatorTagHandlerDelegate does not invoke next handler in partial processing mode, which damages the component structure

     [ https://issues.apache.org/jira/browse/MYFACES-3125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leonardo Uribe resolved MYFACES-3125.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.0
                   2.0.6
         Assignee: Leonardo Uribe

Yes, it is a bug. The solution is do the same pattern AjaxHandler has to handle wrap mode: don't call ComponentHandler.isNew, instead check if the component has been found on ComponentTagHandlerDelegate. I added some try{} finally{} blocks to handle push/pop from stack stuff. 

> ValidatorTagHandlerDelegate does not invoke next handler in partial processing mode, which damages the component structure
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3125
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3125
>             Project: MyFaces Core
>          Issue Type: Bug
>            Reporter: Matt Benson
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.6, 2.1.0
>
>
> In my particular example (which I may or may not be able to extract and reproduce), I have:
> <h:form>
>   <f:validateBean>
>     <h:inputText />
>     ...
>   </f:validateBean>
> </h:form>
> In this example, the form's children are marked for deletion; then, when ValidatorTHDelegate sees that the parent is not a new component, it bails out, thus failing to invoke the next handler and re-add the child components.  When the deletion is finalized the form is left with no children, which incidentally makes it impossible to complete the AJAX request as designed, since the component to re-render no longer exists!  I believe this would only be a problem in wrapping mode.  I have verified that removing the validateBean tag causes the form's structure to be preserved.

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