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() {
