From 702d8bacc2ec8cfe553e68145631b290121ea587 Mon Sep 17 00:00:00 2001 From: Radovan Semancik Date: Fri, 12 Apr 2019 10:55:57 +0200 Subject: [PATCH] Fixing the fix of ValueSet definitions that was supposed to fix the range problems but rather broken the domain --- .../evolveum/midpoint/model/common/mapping/MappingImpl.java | 6 ++++-- repo/repo-common/pom.xml | 4 ++++ .../midpoint/repo/common/expression/ValueSetDefinition.java | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/MappingImpl.java b/model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/MappingImpl.java index e02e6905775..b52dcf8c613 100644 --- a/model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/MappingImpl.java +++ b/model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/MappingImpl.java @@ -939,11 +939,13 @@ private Source parseSo throw new IllegalStateException("Unknown resolve result "+sourceObject); } } + + ID sourceDefinition = (ID)typedSourceObject.getDefinition(); // apply domain ValueSetDefinitionType domainSetType = sourceType.getSet(); if (domainSetType != null) { - ValueSetDefinition setDef = new ValueSetDefinition<>(domainSetType, outputDefinition, expressionProfile, variableName, "domain of "+variableName+" in "+getMappingContextDescription(), task, result); + ValueSetDefinition setDef = new ValueSetDefinition<>(domainSetType, sourceDefinition, expressionProfile, variableName, "domain of "+variableName+" in "+getMappingContextDescription(), task, result); setDef.init(expressionFactory); setDef.setAdditionalVariables(variables); try { @@ -983,7 +985,7 @@ private Source parseSo } } - Source source = new Source<>(itemOld, delta, itemNew, sourceQName, (ID)typedSourceObject.getDefinition()); + Source source = new Source<>(itemOld, delta, itemNew, sourceQName, sourceDefinition); source.setResidualPath(residualPath); source.setResolvePath(resolvePath); source.setSubItemDeltas(subItemDeltas); diff --git a/repo/repo-common/pom.xml b/repo/repo-common/pom.xml index 8a20c6e26c9..56a1a0e3413 100644 --- a/repo/repo-common/pom.xml +++ b/repo/repo-common/pom.xml @@ -101,6 +101,10 @@ commons-lang commons-lang + + org.apache.commons + commons-lang3 + org.springframework spring-context diff --git a/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ValueSetDefinition.java b/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ValueSetDefinition.java index f862565b6c8..d2c186b5d57 100644 --- a/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ValueSetDefinition.java +++ b/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ValueSetDefinition.java @@ -15,6 +15,8 @@ */ package com.evolveum.midpoint.repo.common.expression; +import org.apache.commons.lang3.Validate; + import com.evolveum.midpoint.prism.ItemDefinition; import com.evolveum.midpoint.prism.PrismPropertyDefinition; import com.evolveum.midpoint.prism.PrismPropertyValue; @@ -53,6 +55,7 @@ public class ValueSetDefinition public ValueSetDefinition(ValueSetDefinitionType setDefinitionType, D itemDefinition, ExpressionProfile expressionProfile, String additionalVariableName, String shortDesc, Task task, OperationResult result) { super(); this.setDefinitionType = setDefinitionType; + Validate.notNull(itemDefinition, "No item definition for value set in %s", shortDesc); this.itemDefinition = itemDefinition; this.expressionProfile = expressionProfile; this.additionalVariableName = additionalVariableName;