diff --git a/spring-web/src/main/java/org/springframework/web/util/pattern/SingleCharWildcardedPathElement.java b/spring-web/src/main/java/org/springframework/web/util/pattern/SingleCharWildcardedPathElement.java index ed5ec319b5ad..d16cedf5ec0c 100644 --- a/spring-web/src/main/java/org/springframework/web/util/pattern/SingleCharWildcardedPathElement.java +++ b/spring-web/src/main/java/org/springframework/web/util/pattern/SingleCharWildcardedPathElement.java @@ -85,8 +85,11 @@ public boolean matches(int pathIndex, MatchingContext matchingContext) { else { for (int i = 0; i < this.len; i++) { char ch = this.text[i]; - // TODO revisit performance if doing a lot of case insensitive matching - if ((ch != '?') && (ch != Character.toLowerCase(value.charAt(i)))) { + char valCh = value.charAt(i); + if (ch == valCh || ch == '?') { + continue; + } + if (ch != Character.toLowerCase(valCh)) { return false; } }