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/java/net/URLStreamHandler.java line 515:

> 513:         if (host != null && isBuiltInHandler) {
> 514:             String errMsg = IPAddressUtil.checkHostString(host);
> 515:             if (errMsg != null) throw new 
> IllegalArgumentException(errMsg);

Is it time for URLStreamHandler.setURL to document the IllegalArgumentException?

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

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

Reply via email to