[
https://issues.apache.org/jira/browse/MYFACES-2428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12783886#action_12783886
]
Michael Kurz commented on MYFACES-2428:
---------------------------------------
The changes from commit 885547 (seed is set to null on various calls to
createUniqueId) kill my application. As far as I have seen the problem is that
UIViewRoot and UINamingContainer create the same id in my app.
I think what happens is, that the id of a stylesheet resource in a composite
component is created via the naming container of the composite component. When
the stylesheet is transfered to the view root, its id, which was unique inside
the naming container (composite component), is no longer unique and MyFaces
throws an exception.
Undoing the changes in ComponentTagHandlerDelegate and UIInstructionHandler
puts my app back to work again.
> Id generation for facelets cause problems with htmlunit 2.4 or lower
> --------------------------------------------------------------------
>
> Key: MYFACES-2428
> URL: https://issues.apache.org/jira/browse/MYFACES-2428
> Project: MyFaces Core
> Issue Type: Task
> Components: JSR-314
> Reporter: Leonardo Uribe
> Assignee: Leonardo Uribe
>
> The id generation strategy is critical to allow partial state saving works
> correctly, because all component state is saved on a map, and the clientId is
> the primary key for it.
> Actually, we just pass the facelet generated id for each tag as a seed for
> UniqueIdVendor.createUniqueId(FacesContext context, java.lang.String seed),
> This id cause an exception in htmlunit version 2.4 or lower (in 2.5 this was
> fixed).
> The objective of UniqueIdVendor interface is reduce the variation when ids
> are generated. The ideal case is that for any facelet page the generated ids
> assigned to components should remain the same no matter if the model changes
> by some reason.
> The problem starts when it is used <c:forEach> or <c:if> tags, because its
> behavior depends on the "model" state in a point of the time. The id
> generated by facelets is depends on the facelet "alias" page name, a counter
> id from CompilationManager.
> We need to do multiple tests for worst case scenarios, and try to define an
> strategy to reduce the variability of ids, providing proper "seeds" for it.
> Suggestions are welcome
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.