Tolerate absolute URLs in manifest's Class-Path attribute
Closes gh-10268
This commit is contained in:
parent
0a8b355c60
commit
7eb9193862
|
@ -143,7 +143,10 @@ final class ChangeableUrls implements Iterable<URL> {
|
|||
List<File> nonExistentEntries = new ArrayList<File>();
|
||||
for (String entry : entries) {
|
||||
try {
|
||||
File referenced = new File(parent, entry);
|
||||
File referenced = new File(entry);
|
||||
if (!referenced.isAbsolute()) {
|
||||
referenced = new File(parent, entry);
|
||||
}
|
||||
if (referenced.exists()) {
|
||||
urls.add(referenced.toURI().toURL());
|
||||
}
|
||||
|
|
|
@ -75,9 +75,11 @@ public class ChangeableUrlsTests {
|
|||
@Test
|
||||
public void urlsFromJarClassPathAreConsidered() throws Exception {
|
||||
File relative = this.temporaryFolder.newFolder();
|
||||
File absolute = this.temporaryFolder.newFolder();
|
||||
File jarWithClassPath = makeJarFileWithUrlsInManifestClassPath(
|
||||
"project-core/target/classes/", "project-web/target/classes/",
|
||||
"does-not-exist/target/classes", relative.getName() + "/");
|
||||
"does-not-exist/target/classes", relative.getName() + "/",
|
||||
absolute.getAbsolutePath() + "/");
|
||||
new File(jarWithClassPath.getParentFile(), "project-core/target/classes")
|
||||
.mkdirs();
|
||||
new File(jarWithClassPath.getParentFile(), "project-web/target/classes").mkdirs();
|
||||
|
@ -87,7 +89,7 @@ public class ChangeableUrlsTests {
|
|||
assertThat(urls.toList()).containsExactly(
|
||||
new URL(jarWithClassPath.toURI().toURL(), "project-core/target/classes/"),
|
||||
new URL(jarWithClassPath.toURI().toURL(), "project-web/target/classes/"),
|
||||
relative.toURI().toURL());
|
||||
relative.toURI().toURL(), absolute.toURI().toURL());
|
||||
}
|
||||
|
||||
private URL makeUrl(String name) throws IOException {
|
||||
|
|
Loading…
Reference in New Issue