Browse Source

Optimize StringUtils.cleanPath

Add an early exit to `StringUtils.cleanPath` to save array creating and
string concatenation. With a typical Spring application, the `cleanPath`
method can be called over 600 times, often with a path constructed by
a `ClassPathResource` that is likely to already be clean.

Closes gh-22568
pull/22645/head
Phillip Webb 6 years ago committed by Juergen Hoeller
parent
commit
a57d6ba5f3
  1. 5
      spring-core/src/main/java/org/springframework/util/StringUtils.java

5
spring-core/src/main/java/org/springframework/util/StringUtils.java

@ -639,6 +639,11 @@ public abstract class StringUtils { @@ -639,6 +639,11 @@ public abstract class StringUtils {
}
String pathToUse = replace(path, WINDOWS_FOLDER_SEPARATOR, FOLDER_SEPARATOR);
// Shortcut if there is no work to do
if (pathToUse.indexOf('.') == -1) {
return pathToUse;
}
// Strip prefix from path to analyze, to not treat it as part of the
// first path element. This is necessary to correctly parse paths like
// "file:core/../core/io/Resource.class", where the ".." should just

Loading…
Cancel
Save