|
DataModificationTransaction is supposed to reflect a consistent view on the data tree. Issuing the following sequence of calls:
1) readOperationalData(some.identifier)
2) putOperationalData(some.identifier.child)
3) readOperationalData(some.identifier)
will result in 3) reporting the data as if 2) has never happened. This needs to be addressed by lazily instantiating the binding-aware objects and tying them lazily to the backing store snapshot. This is especially true for things like:
List<Object> list = trans.readOperationalData(some.identifier)
trans.putOperationalData(some.identifier.listKey, object)
for (Object o : list) {
// object should be visible
}
|