You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Bruno Aranda (JIRA)" <de...@myfaces.apache.org> on 2005/11/15 23:51:29 UTC

[jira] Closed: (MYFACES-443) javax.faces.render.Renderer.encodeChildren() should encode children

     [ http://issues.apache.org/jira/browse/MYFACES-443?page=all ]
     
Bruno Aranda closed MYFACES-443:
--------------------------------

    Fix Version: Nightly
     Resolution: Fixed

As stated by Craig in the thread from the previous comment:

<<To the specific question on Renderer.encodeChildren, the requirements
are laid out in Section 8.2 of the spec (which references section
3.1.12 for the description of the corresponding methods on
UIComponent, and in the RI javadocs, which are (by reference)
incorporated into the JSF spec.  In 3.1.12 we read that
encodeChildren() is called only if the component's rendersChildren()
returns true, and is responsible for "creating the response data ...
corresponding to this component's children."  If the MyFaces
implementation in UIComponentBase does not do that, it's broken and
needs to be fixed.>>

Now the encodeChildren from the Renderer class should work as expected, as I fixed that in the sources. The curious thing is that the TCK did not detect that...
Sorry Martin, I've seen that after fixing that you were assigned to this issue... I allow you to think bad things of me :-)

> javax.faces.render.Renderer.encodeChildren() should encode children
> -------------------------------------------------------------------
>
>          Key: MYFACES-443
>          URL: http://issues.apache.org/jira/browse/MYFACES-443
>      Project: MyFaces
>         Type: Bug
>   Components: Implementation
>     Versions: 1.0.9m9
>     Reporter: Ken Weiner
>     Assignee: Martin Marinschek
>      Fix For: Nightly

>
> I noticed a difference in behavior between MyFaces and the Sun RI in javax.faces.render.Renderer.encodeChildren().  The RI iterates though the children and renders them in succession whereas MyFaces simply asserts that the method arguments are non-null and returns, leaving the optional rendering of the children to the subclasses of Renderer.  I am not 100% sure which behavior is correct, but it seems like the spec, in section 8.2 and 3.1.12, indicates that the encodeChildren() method should do the work of creating the response data for each child. 
> As things are now, there is the potential that someone using the RI could develop a renderer that doesn't override encodeChildren(), expecting the children of his/her component to render.  When this person switches to MyFaces, his/her component will not render its children anymore.
> This discussion on the MyFaces Users mailing list led to me submitting this as an issue:
> http://www.mail-archive.com/users%40myfaces.apache.org/msg07461.html

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