diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/SynchronizationServiceImpl.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/SynchronizationServiceImpl.java index b26bf676593..9413afb4fec 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/SynchronizationServiceImpl.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/SynchronizationServiceImpl.java @@ -26,6 +26,7 @@ import javax.xml.namespace.QName; +import com.evolveum.midpoint.model.impl.expr.ModelExpressionThreadLocalHolder; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; import org.jetbrains.annotations.NotNull; @@ -439,10 +440,16 @@ private Boolean evaluateSynchronizationPolicyCondition(ObjectSynchronizationType String desc = "condition in object synchronization " + synchronizationPolicy.getName(); ExpressionVariables variables = Utils.getDefaultExpressionVariables(null, currentShadow, null, resource, configuration, null); - PrismPropertyValue evaluateCondition = ExpressionUtil.evaluateCondition(variables, - conditionExpressionType, expressionFactory, desc, task, result); - return evaluateCondition.getValue(); - + try { + ModelExpressionThreadLocalHolder.pushCurrentTask(task); + ModelExpressionThreadLocalHolder.pushCurrentResult(result); + PrismPropertyValue evaluateCondition = ExpressionUtil.evaluateCondition(variables, + conditionExpressionType, expressionFactory, desc, task, result); + return evaluateCondition.getValue(); + } finally { + ModelExpressionThreadLocalHolder.popCurrentResult(); + ModelExpressionThreadLocalHolder.popCurrentTask(); + } } private boolean isLogDebug(ResourceObjectShadowChangeDescription change) { diff --git a/testing/conntest/src/test/resources/ad-ldap-multidomain/resource-chimera.xml b/testing/conntest/src/test/resources/ad-ldap-multidomain/resource-chimera.xml index aa6ae16c7f2..15b5fb38c88 100644 --- a/testing/conntest/src/test/resources/ad-ldap-multidomain/resource-chimera.xml +++ b/testing/conntest/src/test/resources/ad-ldap-multidomain/resource-chimera.xml @@ -228,6 +228,7 @@ ri:dn ri:memberOf ri:dn + false @@ -480,6 +481,7 @@ ri:dn ri:memberOf ri:dn + false