From 847d23e4f6ad313b2e7a8077631e79485e61be49 Mon Sep 17 00:00:00 2001 From: Romain Manni-Bucau Date: Sun, 17 Feb 2019 11:50:48 +0100 Subject: [PATCH] BVAL-170 no need to test #{ in DefaultMessageInterpolator --- bval-jsr/pom.xml | 2 +- .../java/org/apache/bval/el/ELFacade.java | 28 +++++++++---------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/bval-jsr/pom.xml b/bval-jsr/pom.xml index 2021ee4e..7f12bbcc 100644 --- a/bval-jsr/pom.xml +++ b/bval-jsr/pom.xml @@ -255,7 +255,7 @@ org.codehaus.mojo jaxb2-maven-plugin - 2.3.1 + 2.4 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 e1c96c14..acdf5e06 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 @@ -62,22 +62,20 @@ private EvaluationType(String trigger) { public String interpolate(final String message, final Map annotationParameters, final Object validatedValue) { // BVAL-170: simple pre-check to improve performance - if (message.contains("${") || message.contains("#{")) { + if (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(); - } + 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 }