t:tree2 navigation, expand and collapse image component manipulation does not work well with PSS on JSF 2 ---------------------------------------------------------------------------------------------------------
Key: TOMAHAWK-1540 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1540 Project: MyFaces Tomahawk Issue Type: Bug Components: JSF2, Tree2 Affects Versions: 1.1.9 Reporter: Leonardo Uribe Assignee: Leonardo Uribe In JSF 1.2 and lower, HtmlTreeRenderer used a hack on expand, collapse and navigation images to force render ids for graphic images, because on client side mode they are required by javascript part. To do that, it was used a counter inside the renderer class. That previous hack worked well, because the ids are not required to save the component state. In JSF 2.0, Partial State Saving was introduced, and to work correctly it requires some stability on the ids generated. The problem is the ids for those components are changed on render response time. When state saving occur, the state is saved using those ids, but on a postback the view is built again, but since the ids are not changed on that time, it is not possible to restore the state correctly. This effect does not break myfaces core PSS, bug it breaks mojarra, because they use the ids even for save facets. The solution is create a facelet tag handler that changes the ids on the right time and remove the hack from the renderer. Other problem present is how the navigation images are rendered. For render them, an image component is created and then it is called setParent(), so when getClientId is called later the id will contain the parent container client id too. This component is never saved on the state, so it behaves like a transient one, but on PSS a listener is used to track tree changes, and since it is not marked to be transient, it is added to the list for being restored. The solution is mark this component as transient, calling setTransient(true). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.