Skip to content

Commit 2128a84

Browse files
committed
Never attempt to resolve local address for nested URLs
Update `nested:` Handler to always return `null` from `getHostAddress` in an attempt to improve performance on Windows. Fixes gh-46063
1 parent e2571a4 commit 2128a84

File tree

2 files changed

+15
-0
lines changed
  • spring-boot-project/spring-boot-tools/spring-boot-loader/src
    • main/java/org/springframework/boot/loader/net/protocol/nested
    • test/java/org/springframework/boot/loader/net/protocol/nested

2 files changed

+15
-0
lines changed

spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/net/protocol/nested/Handler.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.loader.net.protocol.nested;
1818

1919
import java.io.IOException;
20+
import java.net.InetAddress;
2021
import java.net.URL;
2122
import java.net.URLConnection;
2223
import java.net.URLStreamHandler;
@@ -35,6 +36,13 @@ public class Handler extends URLStreamHandler {
3536

3637
private static final String PREFIX = "nested:";
3738

39+
@Override
40+
protected InetAddress getHostAddress(URL url) {
41+
// Some Windows users have reported that calls to java.net.URL.getHostAddress()
42+
// can be slow. Since we only deal with local files we always return null here.
43+
return null;
44+
}
45+
3846
@Override
3947
protected URLConnection openConnection(URL url) throws IOException {
4048
return new NestedUrlConnection(url);

spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/net/protocol/nested/HandlerTests.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,11 @@ void assertUrlIsNotMalformedWhenUrlIsValidDoesNotThrowException() {
6868
assertThatNoException().isThrownBy(() -> Handler.assertUrlIsNotMalformed(url));
6969
}
7070

71+
@Test
72+
void getHostAddressIsNull() throws Exception {
73+
// gh-46063
74+
String url = "nested:" + this.temp.getAbsolutePath() + "/!nested.jar";
75+
assertThat(new Handler().getHostAddress(new URL(url))).isNull();
76+
}
77+
7178
}

0 commit comments

Comments
 (0)