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; }