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/02/21 23:21:42 UTC
[1/5] bval git commit: Oracle compiler complaint
Repository: bval
Updated Branches:
refs/heads/bv2 65886272a -> f09af4ddb
Oracle compiler complaint
Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/c6c0c48f
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/c6c0c48f
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/c6c0c48f
Branch: refs/heads/bv2
Commit: c6c0c48f21f0740e1833d1e88124338eb4ef780f
Parents: 6588627
Author: Matt Benson <mb...@apache.org>
Authored: Wed Feb 21 16:40:36 2018 -0600
Committer: Matt Benson <mb...@apache.org>
Committed: Wed Feb 21 16:40:36 2018 -0600
----------------------------------------------------------------------
.../java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bval/blob/c6c0c48f/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java b/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
index df99bf9..3e67cee 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
@@ -134,7 +134,7 @@ public enum ConstraintAnnotationAttributes {
public <C extends Annotation> Worker<C> analyze(final Class<C> clazz) {
if (clazz.getName().startsWith("javax.validation.constraint.")) { // cache only APIs classes to avoid memory leaks
@SuppressWarnings("unchecked")
- final Worker<C> w = (Worker<C>) WORKER_CACHE.computeIfAbsent(clazz, Worker::new);
+ final Worker<C> w = (Worker<C>) WORKER_CACHE.computeIfAbsent((Class<?>) clazz, Worker::new);
return w;
}
return new Worker<C>(clazz);
[5/5] bval git commit: TCK test fixes
Posted by mb...@apache.org.
TCK test fixes
Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/f09af4dd
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/f09af4dd
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/f09af4dd
Branch: refs/heads/bv2
Commit: f09af4ddb73d636cc4ce3748295ef932f8ee9e56
Parents: 2850b94
Author: Matt Benson <mb...@apache.org>
Authored: Wed Feb 21 17:21:33 2018 -0600
Committer: Matt Benson <mb...@apache.org>
Committed: Wed Feb 21 17:21:33 2018 -0600
----------------------------------------------------------------------
.../ComputeConstraintValidatorClass.java | 15 +++--
.../bval/jsr/metadata/ReflectionBuilder.java | 68 ++++++++++++++------
2 files changed, 60 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bval/blob/f09af4dd/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
index 64d913f..d2595ea 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Type;
import java.lang.reflect.WildcardType;
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Supplier;
@@ -139,7 +140,7 @@ class ComputeConstraintValidatorClass<A extends Annotation>
@SuppressWarnings("unchecked")
final Class<A> constraintType = (Class<A>) constraint.annotationType();
- Exceptions.raiseIf(set.size() > 1 || !composed && set.isEmpty(), UnexpectedTypeException::new,
+ Exceptions.raiseIf(set.size() > 1 || !composed && set.isEmpty(), ConstraintDefinitionException::new,
"%d cross-parameter %ss found for constraint type %s", set.size(), CV, constraintType);
final Class<? extends ConstraintValidator<A, ?>> result = set.iterator().next().getType();
@@ -153,10 +154,14 @@ class ComputeConstraintValidatorClass<A extends Annotation>
private Class<? extends ConstraintValidator<A, ?>> findAnnotatedElementValidator(
Set<ConstraintValidatorInfo<A>> infos) {
- final Map<Class<?>, Class<? extends ConstraintValidator<?, ?>>> validators =
- infos.stream().filter(info -> info.getSupportedTargets().contains(ValidationTarget.ANNOTATED_ELEMENT))
- .map(ConstraintValidatorInfo::getType)
- .collect(Collectors.toMap(ComputeConstraintValidatorClass::getValidatedType, Function.identity()));
+ final Map<Class<?>, Class<? extends ConstraintValidator<?, ?>>> validators = infos.stream()
+ .filter(info -> info.getSupportedTargets().contains(ValidationTarget.ANNOTATED_ELEMENT))
+ .map(ConstraintValidatorInfo::getType).collect(
+ Collectors.toMap(ComputeConstraintValidatorClass::getValidatedType, Function.identity(), (v1, v2) -> {
+ Exceptions.raiseUnless(Objects.equals(v1, v2), UnexpectedTypeException::new,
+ "Detected collision of constraint and target type between %s and %s", v1, v2);
+ return v1;
+ }));
final Map<Type, Class<? extends ConstraintValidator<?, ?>>> candidates = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/bval/blob/f09af4dd/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ReflectionBuilder.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ReflectionBuilder.java b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ReflectionBuilder.java
index fc21ea7..776012d 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ReflectionBuilder.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ReflectionBuilder.java
@@ -40,6 +40,8 @@ import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
+import javax.validation.ConstraintDeclarationException;
+import javax.validation.ConstraintTarget;
import javax.validation.GroupSequence;
import javax.validation.Valid;
import javax.validation.constraintvalidation.ValidationTarget;
@@ -51,6 +53,7 @@ import org.apache.bval.jsr.descriptor.GroupConversion;
import org.apache.bval.jsr.util.AnnotationsManager;
import org.apache.bval.jsr.util.Methods;
import org.apache.bval.jsr.util.ToUnmodifiable;
+import org.apache.bval.util.Exceptions;
import org.apache.bval.util.ObjectUtils;
import org.apache.bval.util.Validate;
import org.apache.bval.util.reflection.Reflection;
@@ -209,7 +212,7 @@ public class ReflectionBuilder {
@Override
public Annotation[] getDeclaredConstraints(Metas<E> meta) {
- return getConstraints(meta, ValidationTarget.ANNOTATED_ELEMENT);
+ return getConstraints(ConstraintTarget.RETURN_VALUE);
}
};
}
@@ -219,44 +222,73 @@ public class ReflectionBuilder {
return new ReflectionBuilder.ForElement<E>(meta) {
@Override
public Annotation[] getDeclaredConstraints(Metas<E> meta) {
- return getConstraints(meta, ValidationTarget.PARAMETERS);
+ return getConstraints(ConstraintTarget.PARAMETERS);
}
};
}
- private Annotation[] getConstraints(Metas<E> ignored, ValidationTarget validationTarget) {
- return Optional.of(getConstraintsByTarget(meta)).map(m -> m.get(validationTarget))
+ private Annotation[] getConstraints(ConstraintTarget constraintTarget) {
+ return Optional.of(getConstraintsByTarget()).map(m -> m.get(constraintTarget))
.map(l -> l.toArray(new Annotation[l.size()])).orElse(ObjectUtils.EMPTY_ANNOTATION_ARRAY);
}
- private Map<ValidationTarget, List<Annotation>> getConstraintsByTarget(Metas<E> ignored) {
+ private Map<ConstraintTarget, List<Annotation>> getConstraintsByTarget() {
final Annotation[] declaredConstraints = AnnotationsManager.getDeclaredConstraints(meta);
if (ObjectUtils.isEmpty(declaredConstraints)) {
return Collections.emptyMap();
}
- final Map<ValidationTarget, List<Annotation>> result = new EnumMap<>(ValidationTarget.class);
+ final Map<ConstraintTarget, List<Annotation>> result = new EnumMap<>(ConstraintTarget.class);
for (Annotation constraint : declaredConstraints) {
final Class<? extends Annotation> constraintType = constraint.annotationType();
- final Optional<ValidationTarget> explicitTarget =
+ final Optional<ConstraintTarget> explicitTarget =
Optional.of(ConstraintAnnotationAttributes.VALIDATION_APPLIES_TO.analyze(constraintType))
- .filter(ConstraintAnnotationAttributes.Worker::isValid).map(w -> w.read(constraint));
+ .filter(ConstraintAnnotationAttributes.Worker::isValid)
+ .<ConstraintTarget> map(w -> w.read(constraint)).filter(et -> et != ConstraintTarget.IMPLICIT);
- final ValidationTarget target = explicitTarget.orElseGet(() -> {
- final Set<ValidationTarget> supportedTargets =
- validatorFactory.getAnnotationsManager().supportedTargets(constraintType);
-
- Validate.validState(supportedTargets.size() == 1,
- "Found %d possible %s types for constraint type %s and no explicit assignment via #%s()",
- supportedTargets.size(), ValidationTarget.class.getSimpleName(), constraintType.getName(),
- ConstraintAnnotationAttributes.VALIDATION_APPLIES_TO.getAttributeName());
+ final ConstraintTarget target;
- return supportedTargets.iterator().next();
- });
+ if (explicitTarget.isPresent()) {
+ target = explicitTarget.get();
+ } else {
+ final Set<ValidationTarget> supportedTargets =
+ validatorFactory.getAnnotationsManager().supportedTargets(constraintType);
+
+ if (supportedTargets.size() == 1) {
+ final ValidationTarget validationTarget = supportedTargets.iterator().next();
+ switch (validationTarget) {
+ case PARAMETERS:
+ target = ConstraintTarget.PARAMETERS;
+ break;
+ case ANNOTATED_ELEMENT:
+ target = ConstraintTarget.RETURN_VALUE;
+ break;
+ default:
+ throw Exceptions.create(IllegalStateException::new, "Unknown %s %s for %s",
+ ValidationTarget.class.getSimpleName(), validationTarget, constraintType);
+ }
+ } else {
+ target = impliedConstraintTarget();
+ Exceptions.raiseIf(target == null, ConstraintDeclarationException::new,
+ "Found %d possible %s types for constraint type %s and no explicit assignment via #%s()",
+ supportedTargets.size(), ValidationTarget.class.getSimpleName(), constraintType.getName(),
+ ConstraintAnnotationAttributes.VALIDATION_APPLIES_TO.getAttributeName());
+ }
+ }
result.computeIfAbsent(target, k -> new ArrayList<>()).add(constraint);
}
return result;
}
+
+ private ConstraintTarget impliedConstraintTarget() {
+ if (meta.getHost().getParameterCount() == 0) {
+ return ConstraintTarget.RETURN_VALUE;
+ }
+ if (Void.TYPE.equals(meta.getType())) {
+ return ConstraintTarget.PARAMETERS;
+ }
+ return null;
+ }
}
private final ApacheValidatorFactory validatorFactory;
[4/5] bval git commit: handle missing class element in xml bean
descriptor
Posted by mb...@apache.org.
handle missing class element in xml bean descriptor
Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/2850b943
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/2850b943
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/2850b943
Branch: refs/heads/bv2
Commit: 2850b943ffe62863de1b161a34697102af46009a
Parents: 31ef667
Author: Matt Benson <mb...@apache.org>
Authored: Wed Feb 21 17:21:05 2018 -0600
Committer: Matt Benson <mb...@apache.org>
Committed: Wed Feb 21 17:21:05 2018 -0600
----------------------------------------------------------------------
.../src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bval/blob/2850b943/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java
----------------------------------------------------------------------
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 37082d4..1c8c9bf 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
@@ -113,7 +113,9 @@ public class XmlBuilder {
@Override
public MetadataBuilder.ForClass getClass(Metas<Class<?>> meta) {
- return new XmlBuilder.ForClass(descriptor.getClassType());
+ final ClassType classType = descriptor.getClassType();
+ return classType == null ? EmptyBuilder.instance().forBean().getClass(meta)
+ : new XmlBuilder.ForClass(classType);
}
@Override
[3/5] bval git commit: wrap message interpolation exceptions in
ValidationException
Posted by mb...@apache.org.
wrap message interpolation exceptions in ValidationException
Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/31ef6671
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/31ef6671
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/31ef6671
Branch: refs/heads/bv2
Commit: 31ef667169360e4a415e729a0bd6d23b02dfa96b
Parents: 744b6bf
Author: Matt Benson <mb...@apache.org>
Authored: Wed Feb 21 17:20:35 2018 -0600
Committer: Matt Benson <mb...@apache.org>
Committed: Wed Feb 21 17:20:35 2018 -0600
----------------------------------------------------------------------
.../org/apache/bval/jsr/job/ValidateBean.java | 11 +++++------
.../apache/bval/jsr/job/ValidateParameters.java | 7 ++-----
.../org/apache/bval/jsr/job/ValidateProperty.java | 6 ++----
.../apache/bval/jsr/job/ValidateReturnValue.java | 7 ++-----
.../org/apache/bval/jsr/job/ValidationJob.java | 18 +++++++++++++++++-
5 files changed, 28 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bval/blob/31ef6671/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateBean.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateBean.java b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateBean.java
index dc3fab5..3331c17 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateBean.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateBean.java
@@ -49,12 +49,11 @@ public final class ValidateBean<T> extends ValidationJob<T> {
}
@Override
- ConstraintViolationImpl<T> createViolation(String messageTemplate, ConstraintValidatorContextImpl<T> context,
- Path propertyPath) {
- final String message = validatorContext.getMessageInterpolator().interpolate(messageTemplate, context);
-
- return new ConstraintViolationImpl<>(messageTemplate, message, bean, context.getFrame().getBean(), propertyPath,
- context.getFrame().context.getValue(), context.getConstraintDescriptor(), getRootBeanClass(),
+ ConstraintViolationImpl<T> createViolation(String messageTemplate, String message,
+ ConstraintValidatorContextImpl<T> context, Path propertyPath) {
+ return new ConstraintViolationImpl<>(messageTemplate, message, bean,
+ context.getFrame().getBean(), propertyPath, context.getFrame().context.getValue(),
+ context.getConstraintDescriptor(), getRootBeanClass(),
context.getConstraintDescriptor().unwrap(ConstraintD.class).getDeclaredOn(), null, null);
}
}
http://git-wip-us.apache.org/repos/asf/bval/blob/31ef6671/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
index c0d866b..b7b88c8 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
@@ -170,11 +170,8 @@ public abstract class ValidateParameters<E extends Executable, T> extends Valida
protected abstract T getRootBean();
@Override
- ConstraintViolationImpl<T> createViolation(String messageTemplate, ConstraintValidatorContextImpl<T> context,
- Path propertyPath) {
-
- final String message = validatorContext.getMessageInterpolator().interpolate(messageTemplate, context);
-
+ ConstraintViolationImpl<T> createViolation(String messageTemplate, String message,
+ ConstraintValidatorContextImpl<T> context, Path propertyPath) {
return new ConstraintViolationImpl<T>(messageTemplate, message, getRootBean(), context.getFrame().getBean(),
propertyPath, context.getFrame().context.getValue(), context.getConstraintDescriptor(), getRootBeanClass(),
context.getConstraintDescriptor().unwrap(ConstraintD.class).getDeclaredOn(), null, parameterValues);
http://git-wip-us.apache.org/repos/asf/bval/blob/31ef6671/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateProperty.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateProperty.java b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateProperty.java
index a8fbdbc..67e90ca 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateProperty.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateProperty.java
@@ -511,10 +511,8 @@ public final class ValidateProperty<T> extends ValidationJob<T> {
}
@Override
- ConstraintViolationImpl<T> createViolation(String messageTemplate, ConstraintValidatorContextImpl<T> context,
- Path propertyPath) {
- final String message = validatorContext.getMessageInterpolator().interpolate(messageTemplate, context);
-
+ ConstraintViolationImpl<T> createViolation(String messageTemplate, String message,
+ ConstraintValidatorContextImpl<T> context, Path propertyPath) {
return new ConstraintViolationImpl<>(messageTemplate, message, rootBean, context.getFrame().getBean(),
propertyPath, context.getFrame().context.getValue(), context.getConstraintDescriptor(), rootBeanClass,
context.getConstraintDescriptor().unwrap(ConstraintD.class).getDeclaredOn(), null, null);
http://git-wip-us.apache.org/repos/asf/bval/blob/31ef6671/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
index 1db6099..51e5fc3 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
@@ -126,11 +126,8 @@ public abstract class ValidateReturnValue<E extends Executable, T> extends Valid
}
@Override
- ConstraintViolationImpl<T> createViolation(String messageTemplate, ConstraintValidatorContextImpl<T> context,
- Path propertyPath) {
-
- final String message = validatorContext.getMessageInterpolator().interpolate(messageTemplate, context);
-
+ ConstraintViolationImpl<T> createViolation(String messageTemplate, String message,
+ ConstraintValidatorContextImpl<T> context, Path propertyPath) {
return new ConstraintViolationImpl<>(messageTemplate, message, getRootBean(), context.getFrame().getBean(),
propertyPath, context.getFrame().context.getValue(), context.getConstraintDescriptor(), getRootBeanClass(),
context.getConstraintDescriptor().unwrap(ConstraintD.class).getDeclaredOn(), returnValue, null);
http://git-wip-us.apache.org/repos/asf/bval/blob/31ef6671/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
index 9221184..d0e4ec7 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
@@ -38,6 +38,7 @@ import java.util.stream.Stream;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintViolation;
+import javax.validation.MessageInterpolator;
import javax.validation.Path;
import javax.validation.TraversableResolver;
import javax.validation.UnexpectedTypeException;
@@ -371,10 +372,25 @@ public abstract class ValidationJob<T> {
.getBeanDescriptor(Validate.notNull(bean, "bean").getClass());
}
+ final ConstraintViolationImpl<T> createViolation(String messageTemplate, ConstraintValidatorContextImpl<T> context,
+ Path propertyPath) {
+ return createViolation(messageTemplate, interpolate(messageTemplate, context), context, propertyPath);
+ }
+
abstract ConstraintViolationImpl<T> createViolation(String messageTemplate,
- ConstraintValidatorContextImpl<T> context, Path propertyPath);
+ String message, ConstraintValidatorContextImpl<T> context, Path propertyPath);
protected abstract Frame<?> computeBaseFrame();
protected abstract Class<T> getRootBeanClass();
+
+ private final String interpolate(String messageTemplate, MessageInterpolator.Context context) {
+ try {
+ return validatorContext.getMessageInterpolator().interpolate(messageTemplate, context);
+ } catch (ValidationException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new ValidationException(e);
+ }
+ }
}
[2/5] bval git commit: validate length of supportedTargets()
Posted by mb...@apache.org.
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 <mb...@apache.org>
Authored: Wed Feb 21 16:41:24 2018 -0600
Committer: Matt Benson <mb...@apache.org>
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() {