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
