From 5068eb2e01a5f534b6ceaefe9d1034446b674164 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Mon, 13 Jan 2014 14:05:25 -0500 Subject: [PATCH] Add minor optimization to AbstractErrors Issue: SPR-11304 --- .../org/springframework/validation/AbstractErrors.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java b/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java index 18c566644c..46a2ffc08d 100644 --- a/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java +++ b/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java @@ -227,8 +227,12 @@ public abstract class AbstractErrors implements Errors, Serializable { * @return whether the FieldError matches the given field */ protected boolean isMatchingFieldError(String field, FieldError fieldError) { - return (field.equals(fieldError.getField()) || - (field.endsWith("*") && fieldError.getField().startsWith(field.substring(0, field.length() - 1)))); + if (field.equals(fieldError.getField())) { + return true; + } + // Optimization: use chatAt instead of endsWith (SPR-11304, VESC-165) + int endIndex = field.length() - 1; + return (field.charAt(endIndex) == '*' && fieldError.getField().startsWith(field.substring(0, endIndex))); }