private void reactShadowGone(PrismObject<ShadowType> shadow, PrismObject<ResourceType> resource,
Task task, OperationResult result) {
try {
provisioningService.applyDefinition(shadow, task, result);
ResourceObjectShadowChangeDescription change = new ResourceObjectShadowChangeDescription();
change.setSourceChannel(QNameUtil.qNameToUri(SchemaConstants.CHANGE_CHANNEL_RECON));
change.setResource(resource);
ObjectDelta<ShadowType> shadowDelta = shadow.getPrismContext().deltaFactory().object()
.createDeleteDelta(ShadowType.class, shadow.getOid()
);
change.setObjectDelta(shadowDelta);
change.setCurrentShadow(shadow);
ModelImplUtils.clearRequestee(task);
changeNotificationDispatcher.notifyChange(change, task, result);
} catch (SchemaException | ObjectNotFoundException | CommunicationException | ConfigurationException | ExpressionEvaluationException e) {
processShadowReconError(e, shadow, result);
}
}