diff --git a/infra/prism/src/main/java/com/evolveum/midpoint/prism/PrismContainerValue.java b/infra/prism/src/main/java/com/evolveum/midpoint/prism/PrismContainerValue.java index dd13172edeb..524dfef330b 100644 --- a/infra/prism/src/main/java/com/evolveum/midpoint/prism/PrismContainerValue.java +++ b/infra/prism/src/main/java/com/evolveum/midpoint/prism/PrismContainerValue.java @@ -126,6 +126,17 @@ public PrismContainerValue(OriginType type, Objectable source, PrismContainerabl setPrismContext(prismContext); } + @Override + public PrismContext getPrismContext() { + if (prismContext != null) { + return prismContext; + } + if (getParent() != null) { + return getParent().getPrismContext(); + } + return null; + } + /** * Returns a set of items that the property container contains. The items may be properties or inner property containers. *

diff --git a/infra/prism/src/main/java/com/evolveum/midpoint/prism/xjc/PrismForJAXBUtil.java b/infra/prism/src/main/java/com/evolveum/midpoint/prism/xjc/PrismForJAXBUtil.java index be3d20d5fb7..4d853eaa432 100644 --- a/infra/prism/src/main/java/com/evolveum/midpoint/prism/xjc/PrismForJAXBUtil.java +++ b/infra/prism/src/main/java/com/evolveum/midpoint/prism/xjc/PrismForJAXBUtil.java @@ -234,7 +234,7 @@ public static boolean setFieldContainerValue(PrismCont // This value is already part of another prism. We need to clone it to add it here. fieldContainerValue = fieldContainerValue.clone(); } - fieldContainer = new PrismContainer(fieldName); + fieldContainer = new PrismContainer(fieldName, parent.getPrismContext()); fieldContainer.add(fieldContainerValue); if (parent.getParent() == null) { parent.add(fieldContainer);