avoid NPE on xml ctors

Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/e5e22d3e
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/e5e22d3e
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/e5e22d3e

Branch: refs/heads/bv2
Commit: e5e22d3e650e4960657e4fdbdd10f61691b8a9a0
Parents: e243ee9
Author: Matt Benson <[email protected]>
Authored: Wed Apr 18 17:16:42 2018 -0500
Committer: Matt Benson <[email protected]>
Committed: Tue Oct 16 12:28:20 2018 -0500

----------------------------------------------------------------------
 .../main/java/org/apache/bval/jsr/xml/MappingValidator.java | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bval/blob/e5e22d3e/bval-jsr/src/main/java/org/apache/bval/jsr/xml/MappingValidator.java
----------------------------------------------------------------------
diff --git 
a/bval-jsr/src/main/java/org/apache/bval/jsr/xml/MappingValidator.java 
b/bval-jsr/src/main/java/org/apache/bval/jsr/xml/MappingValidator.java
index f3b017e..9b9f4a4 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/xml/MappingValidator.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/xml/MappingValidator.java
@@ -166,10 +166,11 @@ public class MappingValidator {
             final Constructor<?> dc = Reflection.getDeclaredConstructor(t, 
parameterTypes);
             Exceptions.raiseIf(dc == null, ValidationException::new, "Unknown 
%s constructor %s", t, result);
 
-            final ForConstructor<?> metaCtor = new Meta.ForConstructor<>(dc);
-            constraints(metaCtor, ctor.getReturnValue().getConstraint());
-            containerElements(metaCtor, 
ctor.getReturnValue().getContainerElementType());
-
+            
Optional.of(ctor).map(ConstructorType::getReturnValue).ifPresent(rv -> {
+                final ForConstructor<?> metaCtor = new 
Meta.ForConstructor<>(dc);
+                constraints(metaCtor, rv.getConstraint());
+                containerElements(metaCtor, rv.getContainerElementType());
+            });
             final Parameter[] params = dc.getParameters();
 
             IntStream.range(0, parameterTypes.length).forEach(n -> {

Reply via email to