diff --git a/spring-web/src/main/java/org/springframework/web/util/pattern/PathPattern.java b/spring-web/src/main/java/org/springframework/web/util/pattern/PathPattern.java index c442696945..3e54c740f1 100644 --- a/spring-web/src/main/java/org/springframework/web/util/pattern/PathPattern.java +++ b/spring-web/src/main/java/org/springframework/web/util/pattern/PathPattern.java @@ -706,8 +706,13 @@ public class PathPattern implements Comparable { Comparator.nullsLast( Comparator. comparingInt(p -> p.isCatchAll() ? 1 : 0) - .thenComparingInt(p -> p.isCatchAll() ? -1 * p.getNormalizedLength() : 0) - .thenComparing(PathPattern::getScore) - .thenComparingInt(p -> -1 * p.getNormalizedLength()) + .thenComparingInt(p -> p.isCatchAll() ? scoreByNormalizedLength(p) : 0) + .thenComparingInt(PathPattern::getScore) + .thenComparingInt(PathPattern::scoreByNormalizedLength) ); + + private static int scoreByNormalizedLength(PathPattern pattern) { + return -pattern.getNormalizedLength(); + } + }