Skip to content

Commit

Permalink
Fix the "object new" fix
Browse files Browse the repository at this point in the history
Relates to MID-6899.

(cherry picked from commit c6010aa)
  • Loading branch information
mederly committed Mar 23, 2021
1 parent 40b4332 commit 610edbf
Showing 1 changed file with 11 additions and 3 deletions.
Expand Up @@ -251,17 +251,25 @@ public void setSyncDelta(ObjectDelta<ShadowType> syncDelta) {
}

public ObjectDeltaObject<ShadowType> getObjectDeltaObject() throws SchemaException {
PrismObject<ShadowType> base = objectCurrent;
ObjectDelta<ShadowType> currentDelta = getCurrentDelta();
if (base == null && (ObjectDelta.isModify(currentDelta) || decisionIsAdd())) {
PrismObject<ShadowType> base;
if (shouldCreateObjectNew(currentDelta)) {
RefinedObjectClassDefinition rOCD = getCompositeObjectClassDefinition();
if (rOCD != null) {
base = rOCD.createBlankShadow(resourceShadowDiscriminator.getTag());
} else {
base = null;
}
} else {
base = objectCurrent;
}
return new ObjectDeltaObject<>(base, currentDelta, objectNew, getObjectDefinition());
}

private boolean shouldCreateObjectNew(ObjectDelta<ShadowType> currentDelta) {
return objectCurrent == null && (ObjectDelta.isModify(currentDelta) || currentDelta == null && decisionIsAdd());
}

@Override
public ObjectDelta<ShadowType> getSummaryDelta() {
return getCurrentDelta();
Expand Down Expand Up @@ -827,7 +835,7 @@ public void recompute() throws SchemaException {
PrismObject<ShadowType> base;
if (objectCurrent == null && ObjectDelta.isAdd(syncDelta)) {
base = syncDelta.getObjectToAdd();
} else if (objectCurrent == null && (ObjectDelta.isModify(currentDelta) || decisionIsAdd())) {
} else if (shouldCreateObjectNew(currentDelta)) {
RefinedObjectClassDefinition rOCD = getCompositeObjectClassDefinition();
if (rOCD != null) {
base = rOCD.createBlankShadow(resourceShadowDiscriminator.getTag());
Expand Down

0 comments on commit 610edbf

Please sign in to comment.