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

Reply via email to