8371576: HttpURLConnection fails to connect when first DNS-resolved address is unreachable

Hyunsu Eun ehs122100 at gmail.com
Sun Jan 18 15:34:41 UTC 2026


Hi,

I'd like to contribute to JDK-8371576 [1], where HttpURLConnection fails immediately
if the first DNS-resolved IP address is unreachable, even when other valid addresses exist.

I analyzed the issue and identified the root cause in NetworkClient.doConnect():
- It uses new InetSocketAddress(server, port), which only attempts the first resolved address
- This affects HttpURLConnection, FTP, and other users of NetworkClient
- The modern HttpClient has a similar issue in PlainHttpConnection.connectAsync()

Proposed fix:
- Explicitly resolve all addresses via InetAddress.getAllByName()
- Attempt connections sequentially until one succeeds
- Distribute the timeout across attempts to preserve existing behavior
- Introduce a system property: jdk.net.enableDNSFallback (default: true)

This would address the legacy APIs. Since the modern HttpClient appears to have the same issue,
would you prefer to fix both in a single change or handle them separately?

I'm happy to work on this if the issue is available.

Thanks,  
Hyunsu Eun

[1] https://bugs.openjdk.org/browse/JDK-8371576


More information about the net-dev mailing list