RFR: 8353278: Consolidate local file URL checks in jar: and file: URL schemes

Eirik Bjørsnøs eirbjo at openjdk.org
Tue Apr 1 07:02:18 UTC 2025


Please help review this cleanup PR which consolidates 'local file' URL checks across the 'file:' and 'jar:' URL scheme implementations and defines this check in terms of RFC 8089, Section 2.

This PR:

* Moves `URLJarFile.isFileURL` to `sun.net.www.ParseUtil` where it is documented according to RFC 8089 and given the more suitable name `isLocalFileURL`
* Updates `isLocalFileURL` to simplify an `if (x) return true;` statement to `return x;`
* Updates `URLJarFile.getJarFile` and `JarFileFactory.getOrCreate` to use `isLocalFileURL`
* Updates `JarFileFactory.urlFor` to use `isLocalFileURL` (while maintaining and documenting the historical and subtly different non-treatment of '~' as an alias for 'localhost')
* Updates `sun.net.www.protocol.file.Handler.openConnection` to use `isLocalFileURL` in windows/unix implementations

This is a pure cleanup / refactoring PR, no tests are updated here. Existing testing in this area seems sparse, so I have tried to limit the number of code tweaks to a minimium to make reviews easier.

Testing: GHA runs green, as well as tier2 on MacOS.

-------------

Commit messages:
 - Consolidate "local file" URL testing as defined by RFC 8089, Section 2

Changes: https://git.openjdk.org/jdk/pull/24332/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24332&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8353278
  Stats: 46 lines in 5 files changed: 18 ins; 17 del; 11 mod
  Patch: https://git.openjdk.org/jdk/pull/24332.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24332/head:pull/24332

PR: https://git.openjdk.org/jdk/pull/24332


More information about the net-dev mailing list