On Thu, 6 Oct 2022 15:10:18 GMT, Daniel Fuchs <[email protected]> wrote:

>> Many built-in URL Handlers perform additional syntax checking on the URL 
>> when `URLStreamHandler::openConnection` / connect is called. In some cases, 
>> some of these checks could be also performed earlier, when 
>> `URLStreamHandler::parseURL` is called.
>> 
>> This fix proposes to slightly modify the behavior of JDK built-in URL 
>> handlers to perform these checks early, and throw `MalformedURLException` 
>> earlier, at URL construction time, when that is possible, instead of 
>> delaying until `URL::openConnection` or `URLConnection::connect` are called.
>> 
>> Because java.net.URL constructors are already specified to throw 
>> `MalformedURLException` in such cases, no API documentation changes are 
>> necessary. 
>> 
>> A new JDK specific system property `-Djdk.net.url.delayParsing` or 
>> `-Djdk.net.url.delayParsing=true` can be specified on the command line to 
>> revert to the previous behavior. By default, the property is not set, and 
>> the new behavior is in place. The property can be specified on the java 
>> command line if unexpected regressions are observed.
>> 
>> The new property will be documented in release notes, and may be removed in 
>> a future release.
>> 
>> CSR: https://bugs.openjdk.org/browse/JDK-8294592
>
> Daniel Fuchs has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains three additional 
> commits since the last revision:
> 
>  - Merge branch 'master' into url-early-parsing-8293590
>  - Merge branch 'master' into url-early-parsing-8293590
>  - 8293590

src/java.base/share/classes/sun/net/util/IPAddressUtil.java line 496:

> 494:     // is found. The caller is expected to use that message to
> 495:     // throw an exception.
> 496:     public static String checkUserInfo(String str) {

I think IPAddressUtil was original introduced as a utility class to support 
parsing of IP addresses and do text <--> byte[] conversion. It has grown into 
checking the authority and userInfo components so I think is begging for a 
rename or some refactoring. It's not this PR but I hope you see what I mean on 
the naming/purpose of this class.

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

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

Reply via email to