RFR: 8359808: JavaRuntimeURLConnection should only connect to non-directory resources [v3]
Alan Bateman
alanb at openjdk.org
Sat Jun 21 09:08:38 UTC 2025
On Fri, 20 Jun 2025 11:13:12 GMT, David Beaumont <duke at openjdk.org> wrote:
>> Simplifying JavaRuntimeURLConnection to avoid accidentally returning non-resource data to users.
>>
>> This change has the following distinct parts:
>> 1. Refactor code to use Node instead of directly accessing low level ImageLocation type.
>> 2. Remove unnecessary use of "Resource" interface and related URL generation code (completely unreachable).
>> 3. Adding comments explaining why there's a non-obvious distinction in how module and resource names are treated with respect to URL percent encoding.
>> 4. Small constructor logic simplification (module name cannot be null anymore)
>> 5. Small simplification around 'READER' use, since it is impossible for that to ever be null (other users of ImageReaderFactory already assume it could never be null, and code path analysis agrees).
>> 6. Adding tests for the non-resource cases.
>> 7. Adding extra test data to check the behaviour with respect to things like percent escaping (previously untested).
>> 8. Adding TODO comments for things I could do in this PR or later (reviewer opinions welcome).
>
> David Beaumont has updated the pull request incrementally with one additional commit since the last revision:
>
> Feedback changes and renaming field to match nomenclature of JEP 220.
src/java.base/share/classes/sun/net/www/protocol/jrt/JavaRuntimeURLConnection.java line 87:
> 85: if (resourceNode == null) {
> 86: if (path == null) {
> 87: throw new IOException("cannot connect to jrt:/" + module);
Maybe we can make this `module.isEmpty() || (path == null)` as it needs a non-empty module and resource to connect.
test/jdk/sun/net/www/protocol/jrt/Basic.java line 64:
> 62: {"jrt:/java.base/", false},
> 63: // Cannot escape anything in the module name.
> 64: {"jrt:/java%2Ebase/java/lang/Object.class", false},
Can you add "jrt:/" to the list?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25871#discussion_r2159983831
PR Review Comment: https://git.openjdk.org/jdk/pull/25871#discussion_r2159984206
More information about the net-dev
mailing list