validate length of supportedTargets()

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

Branch: refs/heads/bv2
Commit: 744b6bf8033a67aad778f78a6351d0ccf45b5ab9
Parents: c6c0c48
Author: Matt Benson <[email protected]>
Authored: Wed Feb 21 16:41:24 2018 -0600
Committer: Matt Benson <[email protected]>
Committed: Wed Feb 21 16:41:24 2018 -0600

----------------------------------------------------------------------
 .../src/main/java/org/apache/bval/jsr/ConstraintCached.java  | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bval/blob/744b6bf8/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java 
b/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
index a1f3924..3a89560 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
@@ -28,10 +28,12 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import javax.validation.ConstraintDefinitionException;
 import javax.validation.ConstraintValidator;
 import javax.validation.constraintvalidation.SupportedValidationTarget;
 import javax.validation.constraintvalidation.ValidationTarget;
@@ -41,6 +43,7 @@ import 
org.apache.bval.jsr.metadata.CompositeValidatorMappingProvider;
 import org.apache.bval.jsr.metadata.DualValidationMappingProvider;
 import org.apache.bval.jsr.metadata.ValidatorMappingProvider;
 import org.apache.bval.jsr.util.ToUnmodifiable;
+import org.apache.bval.util.Exceptions;
 import org.apache.bval.util.Lazy;
 import org.apache.bval.util.ObjectUtils;
 import org.apache.bval.util.Validate;
@@ -67,9 +70,12 @@ public class ConstraintCached {
             super();
             this.type = Validate.notNull(type);
             final SupportedValidationTarget svt = 
type.getAnnotation(SupportedValidationTarget.class);
-
+            
             supportedTargets = svt == null ? DEFAULT_VALIDATION_TARGETS
                 : 
Collections.unmodifiableSet(EnumSet.copyOf(Arrays.asList(svt.value())));
+
+            Exceptions.raiseIf(supportedTargets.isEmpty(), 
ConstraintDefinitionException::new,
+                "Illegally specified 0-length %s value on %s", 
SupportedValidationTarget.class.getSimpleName(), type);
         }
 
         public Class<? extends ConstraintValidator<T, ?>> getType() {

Reply via email to