From bd5be7047bb101dd0a8a82b27bf745723764186d Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Thu, 8 Jun 2017 17:26:28 +0200 Subject: [PATCH] fixing "execution environment" for conditions in provisoning scritps. --- .../evolveum/midpoint/model/impl/lens/ChangeExecutor.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ChangeExecutor.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ChangeExecutor.java index e3ba59dc64a..25f45e5708b 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ChangeExecutor.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ChangeExecutor.java @@ -33,6 +33,7 @@ import com.evolveum.midpoint.model.api.ProgressInformation; import com.evolveum.midpoint.model.api.context.SynchronizationPolicyDecision; import com.evolveum.midpoint.model.impl.ModelObjectResolver; +import com.evolveum.midpoint.model.impl.expr.ExpressionEnvironment; import com.evolveum.midpoint.model.impl.expr.ModelExpressionThreadLocalHolder; import com.evolveum.midpoint.model.impl.lens.projector.FocusConstraintsChecker; import com.evolveum.midpoint.model.impl.lens.projector.PolicyRuleProcessor; @@ -1426,7 +1427,12 @@ private OperationProvisioningScript ExpressionVariables variables = Utils.getDefaultExpressionVariables(user, resourceObject, discr, resource.asPrismObject(), context.getSystemConfiguration(), objectContext); - return evaluateScript(resourceScripts, discr, operation, null, variables, context, objectContext, task, result); + ModelExpressionThreadLocalHolder.pushExpressionEnvironment(new ExpressionEnvironment<>(task, result)); + try { + return evaluateScript(resourceScripts, discr, operation, null, variables, context, objectContext, task, result); + } finally { + ModelExpressionThreadLocalHolder.popExpressionEnvironment(); + } }