Details
Description
When components are dynamically added, the id modification performed by autoid can get out of sync:
In Mojarra StateManagementStrategyImpl:
// handle dynamic adds/removes
List<String> removeList = stateContext.getDynamicRemoves();
if (null != removeList && !removeList.isEmpty()) {
stateMap.put(CLIENTIDS_TO_REMOVE_NAME, removeList);
}
Map<String, ComponentStruct> addList = stateContext.getDynamicAdds();
if (null != addList && !addList.isEmpty()) {
List<Object> savedAddList = new ArrayList<Object>(addList.size());
for (ComponentStruct s : addList.values()) {
savedAddList.add(s.saveState(context));
}
stateMap.put(CLIENTIDS_TO_ADD_NAME, savedAddList.toArray());
}
"dynamic adds" are populated with the original IDs set prior to autoid modification. When autoid modifies these IDs, they do not match the value expected by state saving.
Activity
Ted Goddard
created issue -
Ted Goddard
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Ted Goddard [ ted.goddard ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Assignee Priority | P1 |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #24784 | Wed Jun 08 16:10:44 MDT 2011 | ted.goddard | autoid applied only before rendering ( |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/event/MainEventListener.java
|
Ted Goddard
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Fix Version/s | 2.1-Beta [ 10291 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
AbstractMenu.buildMenuFromModel() :
for(UIComponent kid : model.getSubmenus())
getChildren().add(kid);
called during encodeEnd for a variety of menu Renderers.