handle null values in JAXB mapping model
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 @@
@Override
public boolean isCascade(Meta<E> meta) {
- return lazy(isCascade, "isCascade").booleanValue();
+ return Boolean.TRUE.equals(lazy(isCascade, "isCascade"));
}
@Override
@@ -356,12 +356,20 @@
@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