handle null values in JAXB mapping model
Project: http://git-wip-us.apache.org/repos/asf/bval/repo Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/8c6fdea9 Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/8c6fdea9 Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/8c6fdea9 Branch: refs/heads/bv2 Commit: 8c6fdea90eb085aece67a84e03468333299170ad Parents: a1f1f74 Author: Matt Benson <[email protected]> Authored: Fri Mar 16 17:55:36 2018 -0500 Committer: Matt Benson <[email protected]> Committed: Fri Mar 16 17:55:36 2018 -0500 ---------------------------------------------------------------------- .../java/org/apache/bval/jsr/metadata/XmlBuilder.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/bval/blob/8c6fdea9/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java index 404954c..26d5224 100644 --- a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java +++ b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java @@ -242,7 +242,7 @@ public class XmlBuilder { @Override public boolean isCascade(Meta<E> meta) { - return lazy(isCascade, "isCascade").booleanValue(); + return Boolean.TRUE.equals(lazy(isCascade, "isCascade")); } @Override @@ -356,12 +356,20 @@ public class XmlBuilder { @Override public MetadataBuilder.ForElement<E> getCrossParameter(Meta<E> meta) { - return new XmlBuilder.ForCrossParameter<>(lazy(getCrossParameter, "getCrossParameter")); + final CrossParameterType cp = lazy(getCrossParameter, "getCrossParameter"); + if (cp == null) { + return EmptyBuilder.instance().<E> forExecutable().getCrossParameter(meta); + } + return new XmlBuilder.ForCrossParameter<>(cp); } @Override public MetadataBuilder.ForContainer<E> getReturnValue(Meta<E> meta) { - return new XmlBuilder.ForReturnValue<>(lazy(getReturnValue, "getReturnValue")); + final ReturnValueType rv = lazy(getReturnValue, "getReturnValue"); + if (rv == null) { + return EmptyBuilder.instance().<E> forExecutable().getReturnValue(meta); + } + return new XmlBuilder.ForReturnValue<>(rv); } @Override
