From 4a1a9a1aab5d152f25036b8ea78188e9db315238 Mon Sep 17 00:00:00 2001 From: Pavol Mederly Date: Fri, 11 Jul 2014 12:21:30 +0200 Subject: [PATCH] Made prismContext handling more robust. --- .../midpoint/prism/PrismContainerValue.java | 20 +++++++------------ .../midpoint/prism/xjc/PrismForJAXBUtil.java | 2 +- 2 files changed, 8 insertions(+), 14 deletions(-) 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 1a5c9432af3..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 @@ -128,19 +128,13 @@ public PrismContainerValue(OriginType type, Objectable source, PrismContainerabl @Override public PrismContext getPrismContext() { - return prismContext; - - // we could take prismContext also from the parent, but - // actually if it's in the parent, it should be also here - // (as the "add" operation automatically adopts/revives - // the child being added) -// if (prismContext != null) { -// return prismContext; -// } -// if (getParent() != null) { -// return getParent().getPrismContext(); -// } -// return null; + if (prismContext != null) { + return prismContext; + } + if (getParent() != null) { + return getParent().getPrismContext(); + } + return null; } /** 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);