Browse Source

Defensively resolve JarFile from JarURLConnection

Closes gh-34216
pull/34398/head
Juergen Hoeller 11 months ago
parent
commit
36fd82f32f
  1. 16
      spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java

16
spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java

@ -834,11 +834,17 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol @@ -834,11 +834,17 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol
if (con instanceof JarURLConnection jarCon) {
// Should usually be the case for traditional JAR files.
jarFile = jarCon.getJarFile();
jarFileUrl = jarCon.getJarFileURL().toExternalForm();
JarEntry jarEntry = jarCon.getJarEntry();
rootEntryPath = (jarEntry != null ? jarEntry.getName() : "");
closeJarFile = !jarCon.getUseCaches();
try {
jarFile = jarCon.getJarFile();
jarFileUrl = jarCon.getJarFileURL().toExternalForm();
JarEntry jarEntry = jarCon.getJarEntry();
rootEntryPath = (jarEntry != null ? jarEntry.getName() : "");
closeJarFile = !jarCon.getUseCaches();
}
catch (FileNotFoundException ex) {
// Happens in case of cached root directory without specific subdirectory present.
return Collections.emptySet();
}
}
else {
// No JarURLConnection -> need to resort to URL file parsing.

Loading…
Cancel
Save