Browse Source
Prior to this commit, the Javadoc for the getPath() method in ClassPathResource stated the following. > Return the path for this resource (as resource path within the class path). That implied the returned path was an "absolute path" within the class path; however, that was not always true. If the resource was created using ClassPathResource(String) or ClassPathResource(String, ClassLoader), the returned path was a cleaned version of the ABSOLUTE PATH supplied to the constructor, WITHOUT a leading slash. If the resource was created using ClassPathResource(String, Class) with an absolute path, the returned path was a cleaned version of the ABSOLUTE PATH supplied to the constructor, WITH a leading slash. If the resource was created using ClassPathResource(String, Class) with a relative path, the returned path was a cleaned version of the RELATIVE PATH supplied to the constructor. In addition, ClassPathResource does not provide public access the Class passed to the ClassPathResource(String, Class) constructor. Consequently, the path returned by getPath() could not be reliably used with ClassLoader.getResource(String) or with the recently introduced registerResource(Resource) method in ResourceHints. This commit addresses this issue by ensuring that getPath() consistently returns the absolute path within the class path without a leading slash. See gh-29083 Reverts gh-29094 Closes gh-29099pull/29139/head
3 changed files with 16 additions and 41 deletions
Loading…
Reference in new issue