mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 03:43:21 +08:00
Allow classpath wildcards with Java 11 or above
Update `StaticResourceJars` to catch both `IOException` and `InvalidPathException` when checking URLs. Prior to this commit only `IOException` was caught which worked on Java 8 but not Java 11 or above. Fixes gh-21312
This commit is contained in:
parent
e54b7d07c9
commit
df70c42f98
@ -25,6 +25,7 @@ import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.file.InvalidPathException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.jar.JarFile;
|
||||
@ -124,7 +125,7 @@ class StaticResourceJars {
|
||||
try {
|
||||
return isResourcesJar(new JarFile(file));
|
||||
}
|
||||
catch (IOException ex) {
|
||||
catch (IOException | InvalidPathException ex) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -78,6 +78,15 @@ public class StaticResourceJarsTests {
|
||||
assertThat(staticResourceJarUrls).hasSize(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ignoreWildcardUrls() throws Exception {
|
||||
File jarFile = createResourcesJar("test-resources.jar");
|
||||
URL folderUrl = jarFile.getParentFile().toURI().toURL();
|
||||
URL wildcardUrl = new URL(folderUrl.toString() + "*.jar");
|
||||
List<URL> staticResourceJarUrls = new StaticResourceJars().getUrlsFrom(wildcardUrl);
|
||||
assertThat(staticResourceJarUrls).isEmpty();
|
||||
}
|
||||
|
||||
private File createResourcesJar(String name) throws IOException {
|
||||
return createJar(name, (output) -> {
|
||||
JarEntry jarEntry = new JarEntry("META-INF/resources");
|
||||
|
Loading…
Reference in New Issue
Block a user