*/
synchronized void update(Iterator childNodeInfos) {
// insert missing entries and reorder all if necessary.
LinkedEntries.LinkNode prevLN = null;
while (childNodeInfos.hasNext()) {
ChildInfo ci = (ChildInfo) childNodeInfos.next();
LinkedEntries.LinkNode ln = entriesByName.getLinkNode(ci.getName(), ci.getIndex(), ci.getUniqueID());
if (ln == null) {
// add missing at the correct position.
NodeEntry entry = factory.createNodeEntry(parent, ci.getName(), ci.getUniqueID());
ln = internalAddAfter(entry, ci.getIndex(), prevLN);
} else if (prevLN != null) {
// assert correct order of existing
if (prevLN != ln) {
reorderAfter(ln, prevLN);
} else {