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 <[email protected]> Authored: Wed Feb 21 17:20:35 2018 -0600 Committer: Matt Benson <[email protected]> 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); + } + } }
