Description
The reason being that the JDO preDirty callback (from which IsisTransaction#enlistUpdating is called) is called multiple times for each dirtied property.
The fix is to add a guard to only add to the "pre" values if the pre value has not already been captured.