This is an automated email from the ASF dual-hosted git repository.
mbenson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bval.git
The following commit(s) were added to refs/heads/master by this push:
new a0df589 BVAL-170: improve speed of message interpolation when the
pattern clearly cannot contain an EL expression; thanks to Thomas Andraschko
a0df589 is described below
commit a0df5898fab16f7e84eff7b66cbebba7a2af7277
Author: Matt Benson <[email protected]>
AuthorDate: Sat Feb 16 13:52:43 2019 -0600
BVAL-170: improve speed of message interpolation when the pattern clearly
cannot contain an EL expression; thanks to Thomas Andraschko
---
.../src/main/java/org/apache/bval/el/ELFacade.java | 35 +++++++++++-----------
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/bval-jsr/src/main/java/org/apache/bval/el/ELFacade.java
b/bval-jsr/src/main/java/org/apache/bval/el/ELFacade.java
index 3248f8a..40797de 100644
--- a/bval-jsr/src/main/java/org/apache/bval/el/ELFacade.java
+++ b/bval-jsr/src/main/java/org/apache/bval/el/ELFacade.java
@@ -61,25 +61,26 @@ public final class ELFacade implements MessageEvaluator {
@Override
public String interpolate(final String message, final Map<String, Object>
annotationParameters,
final Object validatedValue) {
- try {
- if (EvaluationType.IMMEDIATE.regex.matcher(message).find()) {
- final BValELContext context = new BValELContext();
- final VariableMapper variables = context.getVariableMapper();
- annotationParameters.forEach(
- (k, v) -> variables.setVariable(k,
expressionFactory.createValueExpression(v, Object.class)));
-
- variables.setVariable("validatedValue",
- expressionFactory.createValueExpression(validatedValue,
Object.class));
-
- // Java Bean Validation does not support EL expressions that
look like JSP "deferred" expressions
- return expressionFactory.createValueExpression(context,
-
EvaluationType.DEFERRED.regex.matcher(message).replaceAll("\\$0"),
String.class).getValue(context)
- .toString();
+ if (message.contains("${") || message.contains("#{")) {
+ try {
+ if (EvaluationType.IMMEDIATE.regex.matcher(message).find()) {
+ final BValELContext context = new BValELContext();
+ final VariableMapper variables =
context.getVariableMapper();
+ annotationParameters.forEach(
+ (k, v) -> variables.setVariable(k,
expressionFactory.createValueExpression(v, Object.class)));
+
+ variables.setVariable("validatedValue",
+
expressionFactory.createValueExpression(validatedValue, Object.class));
+
+ // Java Bean Validation does not support EL expressions
that look like JSP "deferred" expressions
+ return expressionFactory.createValueExpression(context,
+
EvaluationType.DEFERRED.regex.matcher(message).replaceAll("\\$0"),
String.class).getValue(context)
+ .toString();
+ }
+ } catch (final Exception e) {
+ // no-op
}
- } catch (final Exception e) {
- // no-op
}
-
return message;
}