原文はこちら。
The original article was written by David Delabassee (DevRel – Java Platform Group at Oracle).
https://inside.java/2022/11/22/heads-up/
OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDK Early Accessビルドを使ってのFOSSプロジェクトのテストを推進しています。
Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。
JDK 20 EAb22, GenZGC EA builds, JavaFX 20 EAb5 and several heads-ups!
https://mail.openjdk.org/pipermail/quality-discuss/2022-November/001099.html
このプログラムの詳細と参加方法については、上記wikiをご覧ください。
JDK 20 – java.net.URL
parsing fix & behavior change
JDK 20までは、JDKビルトインの URLStreamHander
実装が実施するパースや検証 (parsing/validation) の中には、 URL::openConnection
や URLConnection::connect
が呼び出されるまで遅延するものがありました。JDK 20からは、そうしたパースや検証は遅延せずに実行されるようになっています。つまり、URL
コンストラクタ内で実行されます。
不正なURLによって引き起こされる例外は、これまでは接続をオープンするか、接続するまで遅延していましたが、JDK 20からは、URL
コンストラクタ動作時にMalformedURLException
をスローする可能性があります。
Call to Action
この変更に対してコードベースのテストをご提案いたします。そして以前の動作に依存している方向けに、新たなシステムプロパティを導入いたしました。これを使うとコマンドラインで以前の動作に戻すことができます。
訳注
このシステムプロパティはjdk.net.url.delayParsing
で、 -Djdk.net.url.delayParsing
や-Djdk.net.url.delayParsing=true
のようにコマンドラインから指定します。
More Information
[JDK-8293590] Some syntax checks performed by URL.openConnection()
could be performed earlier, at URL construction
https://bugs.openjdk.org/browse/JDK-8293590
[JDK-8295750] Release Note: URL constructors called with malformed input may throw MalformedURLException
for cases where it wasn’t thrown previously
https://bugs.openjdk.org/browse/JDK-8295750