AbstractRecord tempRow = getDescriptor().getObjectBuilder().createRecord(getSession());
// pass in temp Row because most mappings use row.add() not row.put() for
// perf reasons. We are using writeFromObjectIntoRow in order to support
// a large number of types.
mapping.writeFromObjectIntoRow(clone, tempRow, getSession(), WriteType.UNDEFINED);
((AbstractRecord)getRecord()).mergeFrom(tempRow);
}
if (eventChangeSet != null) {
mapping.simpleRemoveFromCollectionChangeRecord(mapKey, valueForChangeSet, eventChangeSet, getSession());
eventChangeSet.setShouldRecalculateAfterUpdateEvent(false);