Eclipse Temurin 17.0.12 のリリースノート
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Open Java Development Kit (OpenJDK) は、Java Platform Standard Edition (Java SE) のオープンソース実装です。Eclipse Temurin は、OpenJDK 8u、OpenJDK 11u、OpenJDK 17u、OpenJDK 21u の 4 つの LTS バージョンで利用できます。
Eclipse Temurin のバイナリーファイルは、macOS、Microsoft Windows と、Red Hat Enterprise Linux や Ubuntu を含む複数の Linux x86 オペレーティングシステムで利用できます。
Red Hat build of OpenJDK ドキュメントへのフィードバック リンクのコピーリンクがクリップボードにコピーされました!
エラーを報告したり、ドキュメントの改善を提案したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- 次のリンクをクリックして チケットを作成します。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- Create をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Eclipse Temurin のサポートポリシー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat は、一部の Eclipse Temurin のメジャーバージョンをサポートします。一貫性を保つために、これらのバージョンは、Oracle が長期サポート (LTS) として指定している Oracle JDK バージョンと同様のままとなります。
Eclipse Temurin のメジャーバージョンは、最初に導入された時点から少なくとも 6 年間サポートされます。詳細は、Eclipse Temurin のライフサイクルおよびサポートポリシー を参照してください。
RHEL 6 のライフサイクルは 2020 年 11 月に終了します。このため、Eclipse Temurin はサポート対象の構成として RHEL 6 をサポートしません。
第2章 Eclipse Temurin の機能 リンクのコピーリンクがクリップボードにコピーされました!
Eclipse Temurin には、OpenJDK のアップストリームディストリビューションの構造の変更は含まれません。
Eclipse Temurin の最新の OpenJDK 17 リリースに含まれる変更点とセキュリティー修正の一覧は、OpenJDK 17 .0.12 Released を参照してください。
新機能および機能拡張
次のリリースノートを確認して、Eclipse Temurin 17.0.12 リリースに含まれる新機能と機能拡張を理解してください。
POST のみの OCSP リクエストのフォールバックオプション
OpenJDK 17 で導入された JDK-8175903 に、OCSP (Online Certificate Status Protocol)リクエストに HTTP GET メソッドを使用するためのサポートが追加されました。この機能は、小さなリクエストに対して無条件に有効化されました。
Internet Engineering Task Force (IETF) RFC 5019 および RFC 6960 では、HTTP GET 要求の使用が明示的に許可され、推奨されています。ただし、一部の OCSP レスポンダーは、これらのタイプの要求に適切に対応しません。
OpenJDK 17.0.12 では、JDK システムプロパティー com.sun.security.ocsp.useget が導入されました。デフォルトでは、このプロパティーは true に設定されており、小さな要求に対して GET 要求を使用する現在の動作が保持されます。このプロパティーが false に設定されている場合は、サイズに関係なく、HTTP POST 要求のみが使用されます。
POST のみの OCSP 要求に対するこのフォールバックオプションは非標準機能であり、OCSP レスポンダーでの HTTP GET 要求の使用によって問題が発生しなくなった場合は、今後のリリースで削除される可能性があります。
JDK-8328638 (JDK Bug System) を参照してください。
DTLS 1.0 はデフォルトで無効になっています
OpenJDK 9 では、Datagram Transport Layer Security (DTLS)プロトコルのバージョン 1.0 とバージョン 1.2 (JEP-219)の両方のサポートが追加されました。TLS 1.1 に基づく DTLSv1.0 は、このプロトコルは弱いと見なされ、最新の標準によって安全ではないと見なされるため、使用は推奨されなくなりました。OpenJDK 17.0.12 では、DTLSv1.0 を使用しようとすると、JDK はデフォルトで SSLHandshakeException を出力します。
DTLSv1.0 を引き続き使用する場合は、java.security 設定ファイルを変更するか、java.security.properties システムプロパティーを使用すると、jdk.tls.disabledAlgorithms システム プロパティーから 0 を削除できます。
DTLSv1.
DTLSv1.0 の使用は推奨されず、ユーザー自身のリスクになります。
JDK-8256660 (JDK Bug System) を参照してください。
内部 JDK バイナリーの $ORIGIN ランタイム検索パスでは、RUNPATH よりも RPATH が優先されます。
JDK のネイティブ実行可能ファイルとライブラリーは、埋め込みランタイム検索パス (rpaths) を使用して、必要な内部 JDK ネイティブライブラリーを検索します。Linux システムでは、バイナリーは DT_RPATH または DT_RUNPATH を使用してこれらの検索パスを指定できます。
-
バイナリーが
DT_RPATHを使用して検索パスを指定すると、これらのパスはLD_LIBRARY_PATH環境変数で指定されたパス よりも先に 検索されます。 -
バイナリーが
DT_RUNPATHを使用して検索パスを指定すると、これらのパスはLD_LIBRARY_PATHで指定されたパス の後に のみ検索されます。つまり、DT_RUNPATHを使用すると、LD_LIBRARY_PATHで指定されている同じ名前のライブラリーで JDK 内部ライブラリーを上書きでき、セキュリティーの観点からは望ましくないことになります。
以前のリリースでは、使用されるランタイム検索パスのタイプは、動的リンカーのデフォルトの検索パスに基づいていました。OpenJDK 17.0.12 で DT_RPATH が使用されていることを確認するには、--disable-new-dtags オプションが明示的にリンカーに渡されます。
JDK-8326891 (JDK Bug System) を参照してください。
製品スイッチとして利用できる TrimNativeHeapInterval オプション
OpenJDK 17.0.12 は、公式の製品スイッチとして -XX:TrimNativeHeapInterval=ms オプションを提供します。この機能強化により、JVM はサポートされているプラットフォーム上で指定された間隔 (ミリ秒単位) でネイティブヒープをトリミングできるようになります。現在、この機能強化がサポートされているプラットフォームは、glibc を搭載した Linux のみです。
TrimNativeHeapInterval=0 を設定するとトリミングを無効にすることができます。トリミング機能はデフォルトで無効になっています。
JDK-8325496 (JDK Bug System) を参照してください。
-XshowSettings ランチャーオプションには security カテゴリーが含まれています
OpenJDK 17.0.12 では、-XshowSettings launcher オプションにセキュリティーカテゴリーが含まれており、次の引数を渡すことができます。
| 引数 | 詳細 |
|---|---|
|
または
| すべてのセキュリティー設定を表示して続行します。 |
|
| セキュリティープロパティーを表示して続行します。 |
|
| 静的セキュリティープロバイダーの設定を表示して続行します。 |
|
| TLS 関連のセキュリティー設定を表示して続行します。 |
サードパーティーのセキュリティープロバイダーがアプリケーションのクラスパスまたはモジュールパスに含まれていて、java.security ファイルで設定されている場合、出力にはこれらのサードパーティーのセキュリティープロバイダーが含まれます。
JDK-8281658 (JDK Bug System) を参照してください。
GlobalSign R46 および E46 ルート証明書が追加されました
OpenJDK 17.0.12 では、cacerts トラストストアに 2 つの GlobalSign TLS ルート証明書が含まれています。
- 証明書 1
- 名前: GlobalSign
- 別名: globalsignr46
- 識別名: CN=GlobalSign Root R46、O=GlobalSign nv-sa、C=BE
- 証明書 2
- 名前: GlobalSign
- 別名: globalsigne46
- 識別名: CN=GlobalSign Root E46、O=GlobalSign nv-sa、C=BE
JDK-8316138 (JDK Bug System) を参照してください。
Code Root Scan フェーズ中の不均衡な反復によるガベージコレクションの長時間停止を修正
ガベージコレクションの Code Root Scan フェーズでは、コンパイルされたコード内の Java オブジェクトへの参照が検出されます。このプロセスを高速化するために、Java ヒープへの参照を含むコンパイル済みコードの各リージョン内にキャッシュが維持されます。
参照セットが小さいという前提で、以前のリリースでは、リージョンごとに 1 つのスレッドを使用してこれらの参照を反復処理していました。このシングルスレッドアプローチでは、スケーラビリティーボトルネックが発生し、特定のリージョンに多数の参照が含まれている場合にパフォーマンスが低下することがあります。
OpenJDK 17.0.12 では、スケーラビリティーのボトルネックを削除するのに役立つ複数のスレッドが使用されます。
JDK-8315503 (JDK Bug System) を参照してください。
Windows での AWT ヘッドレスモード検出の動作の変更
以前のリリースでは、java.awt.headless システムプロパティーが true に設定されていない限り、Windows Server プラットフォームで java.awt.GraphicsEnvironment.isHeadless() を呼び出すと false が返されました。
OpenJDK 17.0.12 以降では、java.awt.headless プロパティーが明示的に false に設定され、実行時に現在のシステムで有効なモニターが検出されない場合、Windows Server プラットフォームでは java.awt.GraphicsEnvironment.isHeadless () への呼び出しが true を返します。たとえば、セッションがサービスまたは PowerShell リモート処理によって開始した場合は、有効なモニターが検出されない可能性があります。
この動作の変更は、以前はヘッドフルコンテキストで実行することが想定されていたこれらの条件下で実行されるアプリケーションで、Abstract Window Toolkit (AWT) 操作によって予期しない HeadlessException エラーが出力される可能性があることを意味します。
java.awt.headless プロパティーを false に設定することで、古い動作を復元できます。ただし、アプリケーションがヘッドフルモードで実行されていて、有効なディスプレイが利用できない場合は、これらのアプリケーションで予期しない問題が引き続き発生する可能性があります。
JDK-8185862 (JDK Bug System) を参照してください。
改訂日時: 2024-08-02