diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java index 268ba0dd07a..d17c2debe12 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java @@ -259,7 +259,7 @@ public void addPrimaryDelta(ObjectDelta delta) throws SchemaException { } public void swallowToPrimaryDelta(ItemDelta itemDelta) throws SchemaException { - createOrModifyPrimaryDelta( + modifyOrCreatePrimaryDelta( delta -> delta.swallow(itemDelta), () -> { ObjectDelta newPrimaryDelta = getPrismContext().deltaFactory().object().create(getObjectTypeClass(), ChangeType.MODIFY); @@ -279,15 +279,15 @@ private interface DeltaCreator { ObjectDelta create() throws SchemaException; } - private void createOrModifyPrimaryDelta(DeltaModifier modifier, DeltaCreator creator) throws SchemaException { + private void modifyOrCreatePrimaryDelta(DeltaModifier modifier, DeltaCreator creator) throws SchemaException { if (primaryDelta == null) { primaryDelta = creator.create(); } else if (!primaryDelta.isImmutable()) { modifier.modify(primaryDelta); } else { - primaryDelta = primaryDelta.clone(); + primaryDelta.setImmutable(false); modifier.modify(primaryDelta); - primaryDelta.freeze(); + primaryDelta.setImmutable(true); } }