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);
+        }
+    }
 }

Reply via email to