private void writeCollectionDiff(StringBuilder builder, GenericObject from, GenericObject to) {
locker.lockCollectionFields(from, to);
/// both objects' fields length should be the same after the lockCollectionFields operation
for(int i=0;i<from.getFields().size();i++) {
Field fromField = from.getFields().get(i);
Field toField = to.getFields().get(i);
boolean moreFromFields = moreCollectionFields(from.getFields(), i);
boolean moreToFields = moreCollectionFields(to.getFields(), i);
appendField(builder, fromField, toField, moreFromFields, moreToFields);
}