You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by mb...@apache.org on 2018/03/19 16:23:35 UTC

bval git commit: revert bad go at detecting multiple maximally specific ValueExtractors

Repository: bval
Updated Branches:
  refs/heads/bv2 6be31f967 -> 5ee4f7687


revert bad go at detecting multiple maximally specific ValueExtractors


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

Branch: refs/heads/bv2
Commit: 5ee4f76878c2698fca00cbfacd7ebc860c8f636f
Parents: 6be31f9
Author: Matt Benson <mb...@apache.org>
Authored: Mon Mar 19 11:23:20 2018 -0500
Committer: Matt Benson <mb...@apache.org>
Committed: Mon Mar 19 11:23:20 2018 -0500

----------------------------------------------------------------------
 .../bval/jsr/valueextraction/ValueExtractors.java     | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bval/blob/5ee4f768/bval-jsr/src/main/java/org/apache/bval/jsr/valueextraction/ValueExtractors.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/valueextraction/ValueExtractors.java b/bval-jsr/src/main/java/org/apache/bval/jsr/valueextraction/ValueExtractors.java
index ec1cf23..3adc541 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/valueextraction/ValueExtractors.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/valueextraction/ValueExtractors.java
@@ -32,7 +32,6 @@ import java.util.function.Supplier;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.validation.ConstraintDeclarationException;
 import javax.validation.valueextraction.ValueExtractor;
 import javax.validation.valueextraction.ValueExtractorDeclarationException;
 import javax.validation.valueextraction.ValueExtractorDefinitionException;
@@ -167,16 +166,11 @@ public class ValueExtractors {
         // search for assignable ContainerElementKey:
         Set<ContainerElementKey> assignableKeys = key.getAssignableKeys();
         while (!assignableKeys.isEmpty()) {
-            final Set<ValueExtractor<?>> results = assignableKeys.stream().filter(allValueExtractors::containsKey)
-                .map(allValueExtractors::get).collect(Collectors.toSet());
-
-            final int rz = results.size();
-            if (rz == 1) {
-                return results.iterator().next();
+            final Optional<ValueExtractor<?>> found = assignableKeys.stream().filter(allValueExtractors::containsKey)
+                .<ValueExtractor<?>> map(allValueExtractors::get).findFirst();
+            if (found.isPresent()) {
+                return found.get();
             }
-            Exceptions.raiseIf(rz > 1, ConstraintDeclarationException::new, "%d maximally specific %ss found for %s",
-                rz, ValueExtractor.class.getSimpleName(), key);
-
             assignableKeys = assignableKeys.stream().map(ContainerElementKey::getAssignableKeys)
                 .flatMap(Collection::stream).collect(Collectors.toSet());
         }