Details
Description
I discovered this through some complicated use of composite components but the issue is that during process updates if a component is not rendered (rendered=false) then it is pushed on the component stack but never popped. This bug has existed since version 2.1.2.
The affected method is javax.faces.component.UIComponentBase.processUpdates(FacesContext)
The code is
...
pushComponentToEL(context, this);
if (_isPhaseExecutable(context))
{
...
popComponentFromEL(context);
}
...