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
