In Trinidad 2, both CoreRenderer and UIXComponentBase implement their
own version of encodeAll(FacesContext). The problem that I am seeing
is that if a component overrides encodeAll, it is not always called.
Looking at the UIComponent JavaDoc for J2EE 6, I do not see that it is
clear if someone may expect that encodeAll is always to be called on a
component, or must a component still code the use case that a parent
may call encodeBegin, getRendersChildren+encodeChildren, encodeEnd?

As I see it, Trinidad 2 is not compliant with the new JSF2 method and
we should remove the encodeAll override in UIXComponentBase so that
the UIComponent method implementation is used instead. Same goes for
CoreRenderer.encodeChild, it should be calling encodeAll on the
component.

I opened this:
https://issues.apache.org/jira/browse/TRINIDAD-1927

Does anyone have feedback on this? Is Trinidad 2 wrong, or am I wrong
with the assumption that a component can rely on the new encodeAll
method always being called?

-Andrew

Reply via email to