OpenJDK 17.0.2 リリースノート

OpenJDK 17

リリースノート

概要

本書では、OpenJDK 17 の新機能の概要と、考えられる既知の問題と、その回避策を説明します。

前書き

OpenJDK (Open Java Development Kit) は、Java Platform Standard Edition (Java SE) のオープンソース実装です。Open JDK の Red Hat ビルドには、次の 3 つのバージョンがあります。Open JDK 8u、Open JDK 11u、および Open JDK17u。

Red Hat ビルドの OpenJDK 向けパッケージは、Red Hat Enterprise Linux および Microsoft Windows で利用でき、Red Hat Ecosystem Catalog の JDK および JRE として同梱されています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージをご覧ください。

Red Hat ドキュメントへのフィードバック

弊社のドキュメントに関するご意見やご感想をお寄せください。フィードバックをお寄せいただくには、ドキュメントのテキストを強調表示し、コメントを追加できます。

本セクションでは、フィードバックの送信方法を説明します。

前提条件

  • Red Hat カスタマーポータルにログインしている。
  • Red Hat カスタマーポータルで、マルチページ HTML 形式でドキュメントを表示します。

手順

フィードバックを提供するには、以下の手順を実施します。

  1. ドキュメントの右上隅にある フィードバック ボタンをクリックして、既存のフィードバックを確認します。

    注記

    フィードバック機能は、マルチページ HTML 形式でのみ有効です。

  2. フィードバックを提供するドキュメントのセクションを強調表示します。
  3. ハイライトされたテキスト近くに表示される Add Feedback ポップアップをクリックします。

    ページの右側のフィードバックセクションにテキストボックスが表示されます。

  4. テキストボックスにフィードバックを入力し、Submit をクリックします。

    ドキュメントに関する問題が作成されます。

  5. 問題を表示するには、フィードバックビューで問題トラッカーリンクをクリックします。

第1章 OpenJDK のサポートポリシー

Red Hat は、その製品で OpenJDK の一部のメジャーバージョンに対応しています。一貫性のため、このバージョンは、長期サポート (LTS) として指定されている Oracle JDK バージョンと引き続き似ています。

Red Hat は、Red Hat が OpenJDK を初めて導入してから 6 年間、OpenJDK のメジャーバージョンに対応しています。

OpenJDK 17 は、2027 年 11 月まで、Microsoft Windows および Red Hat Enterprise Linux で対応しています。

注記

RHEL 6 のライフサイクルは 2020 年 11 月に終了します。OpenJDK 17 は RHEL 6 ではサポートされていません。

関連情報

詳細は、「OpenJDK のライフサイクルおよびサポートポリシー」を参照してください。

第2章 アップストリームの OpenJDK 17 との相違点

Red Hat Enterprise Linux の OpenJDK には、OpenJDK のアップストリームディストリビューションの構造上の変更が数多く含まれています。Microsoft Windows バージョンの OpenJDK は、Red Hat Enterprise Linux の更新にできる限り従います。

以下は、Red Hat OpenJDK 17 における最も注目すべき変更の一覧です。

  • FIPS のサポート。Red Hat OpenJDK 17 は、RHEL が FIPS モードであるかどうかを自動的に検出し、そのモードで動作するように OpenJDK 17 を自動的に設定します。この変更は、Microsoft Windows 向けの OpenJDK ビルドには適用されません。
  • 暗号化ポリシーのサポート。Red Hat Open JDK 17 は、有効な暗号化アルゴリズムとキーサイズ制約のリストを RHEL システム設定から取得します。これらの設定コンポーネントは、トランスポート層セキュリティー (TLS) 暗号化プロトコル、証明書パス検証、および署名された JAR によって使用されます。さまざまなセキュリティープロファイルを設定して、安全性と互換性のバランスをとることができます。この変更は、Microsoft Windows 向けの OpenJDK ビルドには適用されません。
  • Red Hat OpenJDK on RHEL は、アーカイブ形式のサポート用の zlib、イメージのサポート用の libjpeg-turbolibpnggiflib などのネイティブライブラリーと動的にリンクします。また、RHEL はフォントのレンダリングと管理のために、Harfbuzz および Freetype に対して動的にリンクします。この変更は、Microsoft Windows 向けの OpenJDK ビルドには適用されません。
  • src.zip ファイルには、OpenJDK に同梱されるすべての JAR ライブラリーのソースが含まれます。
  • Red Hat OpenJDK on RHEL は、タイムゾーン情報のソースとして、システム全体のタイムゾーンデータファイルを使用します。
  • Red Hat OpenJDK on RHEL は、システム全体の CA 証明書を使用します。
  • Red Hat OpenJDK on Microsoft Windows には、RHEL で利用可能な最新のタイムゾーンデータが含まれています。
  • Red Hat OpenJDK on Microsoft Windows は、RHEL から入手可能な最新の CA 証明書を使用します。

関連情報

第3章 OpenJDK の機能

最新の OpenJDK 17 リリースには、新機能が含まれている可能性があります。さらに、最新リリースは、以前の Open JDK 17 リリースに由来する機能を強化、非推奨、または削除する可能性があります。

注記

その他の変更点およびセキュリティー修正は、OpenJDK 17.0.2 Released を参照してください。

3.1. 新機能および改良された機能

次のリリースノートを確認して、OpenJDK 17.0.2 リリースに含まれている新機能と機能拡張を理解してください。

IANA タイムゾーンデータベース

Internet Assigned Numbers Authority (IANA) は、タイムゾーンデータベースをバージョン 2021c に更新しました。Red Hat Open JDK の日付と時刻のライブラリーは、世界中のさまざまな地域の現地時間を決定するために IANA のタイムゾーンデータベースに依存しています。

注記

タイムゾーンデータベースの 2021b リリースでは、1970 年より前に存在していたタイムゾーンルールが更新されました。2021B のリリースの詳細については、IANA Web サイトの 2021b release of tz code and data available を参照してください。

IANA の 2021c タイムゾーンデータベースリリースの詳細については、JDK-8274857 を参照してください。

IANA のタイムゾーンデータベースの詳細については、IANA のWeb サイトの Time Zone Database を参照してください。

3.2. OpenJDK の機能強化

OpenJDK 17 では、以前のリリースの OpenJDK で作成された機能に拡張が行われました。

Open JDK による Microsoft Windows バージョンの識別

Open JDK 17 以前は、System.getProperty() から取得した os.name システムプロパティーとHotSpot エラーログは、Microsoft Windows 11 の Windows 10.0 と、Microsoft Windows Server 2022 の Windows Server 2019 を報告します。Open JDK は、これらのシステムで正しいバージョンを識別するようになりました。

システムプロパティーの動作の変更

Open JDK 17 は、file.encoding システムプロパティーの動作を、mac OS を除くほとんどのサポートされているプラットフォームで Open JDK 11 と同じ状態に戻します。この変更により、システムロケールとユーザーロケールが異なる Microsoft Windows プラットフォームでのシステムプロパティーの動作が改善されます。

file.encoding システムプロパティーの動作変更の詳細については、JDK-8275343 を参照してください。

ベクトルクラスの更新

Open JDK 17 は java.util.Vector クラスを更新するため、このクラスは、逆シリアル化プロセス中に java.io.ObjectInputStream.GetField.get(name, object) メソッドで生成されたすべての ClassNotFoundException メッセージを報告するようになりました。これらの例外メッセージは、要素内にラップされたベクトルのクラスが見つからない場合に発生します。

java.util.Vector クラスが更新される前に、以前に詳細なインシデントが発生したときに、クラスは StreamCorruptedException メッセージを報告しました。StreamCorruptedException メッセージは、欠落しているクラスに関する情報を提供しません。

java.util.Vector クラスの更新の詳細については、JDK-8277157 を参照してください。

Z Garbage Collector のバグ修正

Open JDK 17 の更新前は、Z Garbage Collector (ZGC) で、メモリー管理に ZGC を使用する Java アプリケーションのレイテンシーとスループットの問題が発生する長い同時プロセスの非強力な参照時間が発生していました。コマンドラインインターフェイスでガベージコレクター (GC) ログに対して -Xlog:gc* を入力することにより、これらの長い時間を判断できます。

Open JDK 17 リリースでは、これらの問題の原因となったバグが削除されたため、ZGC は並行プロセスの非強力な参照時間を短縮できるようになりました。

ZGC のバグ修正の詳細については、JDK-8277533 を参照してください。

3.3. 非推奨および削除された機能

次のリリースノートを確認して、OpenJDK 17.0.2 リリースで非推奨または削除された既存の機能を理解してください。

Google GlobalSign ルート証明書

OpenJDK 17.0.2 は、cacerts キーストアから次のルート証明書を削除します。

エイリアス名
globalsignr2ca [jdk]
識別名
CN=GlobalSign、O=GlobalSign、OU=GlobalSign Root CA - R2

この削除された Google Global Sign ルート証明書の詳細については、JDK-8272535 を参照してください。

第4章 既知の問題

OpenJDK 17 には既知の問題が含まれている可能性があります。これらの既知の問題のいくつかには解決策が存在する可能性があります。

デバッグパッケージが RHEL 8.5 CodeReady Linux Builder (CRB) リポジトリーに移動しました

説明

RHEL 8.5 では、java-17-openjdk-slowdebug-debuginfo パッケージ java-17-openjdk-fastdebug-debuginfo パッケージが Code Ready Linux Builder (CRB) リポジトリーに移動しました。ここで、java-openjdk-slowdebug パッケージおよび java-openjdk-fastdebug パッケージはすでに存在します。このリポジトリーには、開発者パッケージが含まれています。Red Hat は、RHEL 8.5 のライフサイクルの早い段階でこれらのパッケージを CRB リポジトリーに移動することを計画していました。しかし、この計画は実現しませんでした。

java-17-openjdk-slowdebug-debuginfo パッケージおよび java-17-openjdk-fastdebug-debuginfo パッケージが AppStream リポジトリーにあるときに、これらのパッケージをインストールした可能性があります。

CLI で次のコマンドを発行することによりjava-17-openjdk-slowdebug-debuginfo パッケージまたは java-17-openjdk-fastdebug-debuginfo パッケージがインストールされているかどうかを確認できます。

$ rpm -qa | grep java-.*debug-debuginfo

Java アプリケーションのデバッグ目的で java-17-openjdk-slowdebug-debuginfo パッケージおよび java-17-openjdk-fastdebug-debuginfo パッケージを引き続き使用できますが、これらのパッケージの更新を受け取るには、CRB リポジトリーを有効にする必要があります。

回避策

java-17-openjdk-slowdebug-debuginfo パッケージおよび java-17-openjdk-fastdebug-debuginfo パッケージをインストールした場合は、次のいずれかのオプションを選択する必要があります。

  • CLI で次のコマンドを実行して、これらのパッケージをアンインストールします。

    $ dnf remove java-17-openjdk-<package-name>
  • CLI で次のコマンドを実行して、CRB リポジトリーを有効にします。

    $ dnf config-manager --set-enabled rhel-8-crb-debug-rpms
    重要

    Red Hat は、CRB リポジトリーに含まれるパッケージを完全にはサポートしていません。Java アプリケーションでサポートされていないデバッグパッケージを使用することの潜在的なリスクを確実に理解してください。

RHEL 8.5 の CRB リポジトリーの詳細については、Red Hat Enterprise Linux ドキュメントの パッケージマニフェスト ガイドを参照してください。

第5章 本リリースに関連するアドバイザリー

以下のアドバイザリーは、本リリースに含まれるバグ修正および CVE の修正に発行されています。

改訂日時: 2022-02-13 16:05:56 +1000