-
Type:
Bug
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: liferay-faces-2.1.0-ga1, liferay-faces-2.1.1-ga2, liferay-faces-3.0.0-legacy-ga1, liferay-faces-3.0.1-legacy-ga2, liferay-faces-3.0.0-ga1, liferay-faces-3.0.1-ga2, liferay-faces-3.1.0-ga1, liferay-faces-3.1.1-ga2
-
Component/s: Liferay Faces Bridge Impl / Demos / Tests
-
Labels:None
The UICleanup interface was introduced in FACES-1444 as a feature that enables components to "cleanup" when components have gone from rendered="false" to rendered="true". The PartialViewContextCleanupImpl class enables this feature by implementing PartialViewContext and visiting the tree. When the tree-walk algorithm encounters an instance of UICleanup that has gone from rendered=true to rendered=false, the UICleanup.encodeCleanup(FacesContext) method is called.
The problem is that the EL expressions
#{cc}
and
#{component}
are not resolving to the "current" UICleanup component. In order to fix this, the protected PartialViewContextCleanupImpl.encodeCleanup(FacesContext, UIComponent, boolean) method should implement the requirements of UIComponent.encodeBegin(FacesContext) and UIComponent.encodeEnd(FacesContext) pertaining to UIComponent.pushComponentToEL(FacesContext, UIComponent) and UIComponent.popComponentFromEL(FacesContext) respectively.