Author: nbelaevski
Date: 2009-12-11 18:07:49 -0500 (Fri, 11 Dec 2009)
New Revision: 16116
Modified:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptorBase.java
Log:
https://jira.jboss.org/jira/browse/RF-7248
Modified:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptorBase.java
===================================================================
---
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptorBase.java 2009-12-11
19:13:08 UTC (rev 16115)
+++
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptorBase.java 2009-12-11
23:07:49 UTC (rev 16116)
@@ -878,6 +878,29 @@
return currentChildState;
}
+ private Map<String, Map<String, SavedState>> createChildStateCopy() {
+ Map<String, Map<String, SavedState>> childStateCopy = null;
+
+ if (this.childState != null) {
+ childStateCopy = new HashMap<String, Map<String,SavedState>>();
+
+ for (Entry<String, Map<String, SavedState>> entry :
this.childState.entrySet()) {
+ String entryKey = entry.getKey();
+ Map<String, SavedState> entryValue = entry.getValue();
+
+ Map<String, SavedState> entryValueCopy = null;
+
+ if (entryValue != null) {
+ entryValueCopy = new HashMap<String, SavedState>(entryValue);
+ }
+
+ childStateCopy.put(entryKey, entryValueCopy);
+ }
+ }
+
+ return childStateCopy;
+ }
+
/**
* Save values of {@link EditableValueHolder} fields before change current
* row.
@@ -1528,7 +1551,7 @@
state.ajaxKeys = this._ajaxKeys;
state.rowKeyVar = this._rowKeyVar;
state.stateVar = this._stateVar;
- state.childStates = this.childState;
+ state.childStates = createChildStateCopy();
if (null != this._rowKeyConverter) {
state.rowKeyConverter = saveAttachedState(faces,this._rowKeyConverter);
}