diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/OperatorMatches.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/OperatorMatches.java index 5127419238f..21e8b998e13 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/OperatorMatches.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/OperatorMatches.java @@ -117,7 +117,7 @@ public class OperatorMatches extends Operator { private void checkRegexLength(String regex) { if (regex.length() > MAX_REGEX_LENGTH) { - throw new SpelEvaluationException(getStartPosition(), + throw new SpelEvaluationException(getRightOperand().getStartPosition(), SpelMessage.MAX_REGEX_LENGTH_EXCEEDED, MAX_REGEX_LENGTH); } } diff --git a/spring-expression/src/test/java/org/springframework/expression/spel/EvaluationTests.java b/spring-expression/src/test/java/org/springframework/expression/spel/EvaluationTests.java index 0398a3464e5..f5f9cafb190 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/EvaluationTests.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/EvaluationTests.java @@ -534,7 +534,7 @@ class EvaluationTests extends AbstractExpressionTests { void matchesWithPatternAccessThreshold() { String pattern = "^(?=[a-z0-9-]{1,47})([a-z0-9]+[-]{0,1}){1,47}[a-z0-9]{1}$"; String expression = "'abcde-fghijklmn-o42pasdfasdfasdf.qrstuvwxyz10x.xx.yyy.zasdfasfd' matches '" + pattern + "'"; - evaluateAndCheckError(expression, SpelMessage.FLAWED_PATTERN); + evaluateAndCheckError(expression, SpelMessage.FLAWED_PATTERN, 74); } @Test @@ -546,7 +546,7 @@ class EvaluationTests extends AbstractExpressionTests { pattern += "?"; assertThat(pattern).hasSize(1001); - evaluateAndCheckError("'X' matches '" + pattern + "'", Boolean.class, SpelMessage.MAX_REGEX_LENGTH_EXCEEDED); + evaluateAndCheckError("'X' matches '" + pattern + "'", Boolean.class, SpelMessage.MAX_REGEX_LENGTH_EXCEEDED, 12); } @Test