Browse Source

Merge branch '6.2.x'

pull/34799/head
Juergen Hoeller 9 months ago
parent
commit
ffb32f4238
  1. 11
      spring-core/src/main/java/org/springframework/core/io/AbstractFileResolvingResource.java
  2. 5
      spring-core/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java

11
spring-core/src/main/java/org/springframework/core/io/AbstractFileResolvingResource.java

@ -86,7 +86,16 @@ public abstract class AbstractFileResolvingResource extends AbstractResource { @@ -86,7 +86,16 @@ public abstract class AbstractFileResolvingResource extends AbstractResource {
if (con instanceof JarURLConnection jarCon) {
// For JarURLConnection, do not check content-length but rather the
// existence of the entry (or the jar root in case of no entryName).
return (jarCon.getEntryName() == null || jarCon.getJarEntry() != null);
try {
if (jarCon.getEntryName() == null) {
// Jar root: check for the existence of any actual jar entries.
return jarCon.getJarFile().entries().hasMoreElements();
}
return (jarCon.getJarEntry() != null);
}
finally {
jarCon.getJarFile().close();
}
}
else if (con.getContentLengthLong() > 0) {
return true;

5
spring-core/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java

@ -335,6 +335,11 @@ class PathMatchingResourcePatternResolverTests { @@ -335,6 +335,11 @@ class PathMatchingResourcePatternResolverTests {
}
assertThat(new FileSystemResource(path).exists()).isTrue();
assertThat(new UrlResource(ResourceUtils.JAR_URL_PREFIX + ResourceUtils.FILE_URL_PREFIX + path + ResourceUtils.JAR_URL_SEPARATOR).exists()).isTrue();
assertThat(new UrlResource(ResourceUtils.JAR_URL_PREFIX + ResourceUtils.FILE_URL_PREFIX + path + ResourceUtils.JAR_URL_SEPARATOR + "assets/file.txt").exists()).isTrue();
assertThat(new UrlResource(ResourceUtils.JAR_URL_PREFIX + ResourceUtils.FILE_URL_PREFIX + path + ResourceUtils.JAR_URL_SEPARATOR + "assets/none.txt").exists()).isFalse();
assertThat(new UrlResource(ResourceUtils.JAR_URL_PREFIX + ResourceUtils.FILE_URL_PREFIX + "X" + path + ResourceUtils.JAR_URL_SEPARATOR).exists()).isFalse();
assertThat(new UrlResource(ResourceUtils.JAR_URL_PREFIX + ResourceUtils.FILE_URL_PREFIX + "X" + path + ResourceUtils.JAR_URL_SEPARATOR + "assets/file.txt").exists()).isFalse();
assertThat(new UrlResource(ResourceUtils.JAR_URL_PREFIX + ResourceUtils.FILE_URL_PREFIX + "X" + path + ResourceUtils.JAR_URL_SEPARATOR + "assets/none.txt").exists()).isFalse();
}
private void writeApplicationJar(Path path) throws Exception {

Loading…
Cancel
Save