From dd7dd75d06d5bd27327589ae9c00172d12c27b0b Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Mon, 16 Mar 2020 18:29:54 +0100 Subject: [PATCH] fix fo MID-6009 - ITSM Manual connector shadow conflict (cherry picked from commit e911c7ae681f52c7286d499ec885b57fa66117df) --- .../midpoint/provisioning/impl/ShadowCache.java | 13 +++++++++++++ .../ucf/impl/builtin/ManualConnectorInstance.java | 2 ++ 2 files changed, 15 insertions(+) diff --git a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java index cdcac712469..05864d83b65 100644 --- a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java +++ b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java @@ -1457,6 +1457,19 @@ private PrismObject refreshShadowAsyncStatus(ProvisioningContext ctx if (operationCompleted && gracePeriod == null) { LOGGER.trace("Deleting pending operation because it is completed (no grace): {}", pendingOperation); shadowDelta.addModificationDeleteContainer(ShadowType.F_PENDING_OPERATION, pendingOperation.clone()); + + ObjectDeltaType pendingDeltaType = pendingOperation.getDelta(); + ObjectDelta pendingDelta = DeltaConvertor.createObjectDelta(pendingDeltaType, prismContext); + + if (pendingDelta.isAdd()) { + shadowInception = true; + } + + if (pendingDelta.isDelete()) { + shadowInception = false; + shadowManager.addDeadShadowDeltas(repoShadow, refreshAsyncResult, (List)shadowDelta.getModifications()); + } + continue; } else { diff --git a/provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/ManualConnectorInstance.java b/provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/ManualConnectorInstance.java index 19ae987cf7d..eb77c16893a 100644 --- a/provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/ManualConnectorInstance.java +++ b/provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/ManualConnectorInstance.java @@ -348,6 +348,8 @@ private OperationResultStatus translateOutcome(String outcome) { return null; } else if (outcome.equals(OperationResultStatusType.SUCCESS.value())) { return OperationResultStatus.SUCCESS; + } else if (SchemaConstants.MODEL_APPROVAL_OUTCOME_APPROVE.equals(outcome)) { + return OperationResultStatus.SUCCESS; } else { return OperationResultStatus.UNKNOWN; }