検索

第3章 Red Hat build of OpenJDK の機能

download PDF

最新の Red Hat build of OpenJDK 21 リリースには、新機能が含まれる可能性があります。さらに、最新リリースは、以前の Red Hat build of OpenJDK 21 リリースに由来する機能を強化、非推奨、または削除する可能性があります。

注記

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

Red Hat build of OpenJDK の機能強化

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

Java コンパイラーは、レコードパターンの final キーワードを拒否することにより、Java 言語仕様に準拠しています。

Java 21 リリースでは、switch ステートメントのパターン一致で Java 言語が強化されました。ただし、Red Hat build of OpenJDK 21 では、レコードパターンの前に final キーワードを使用できる javac コンパイラーが提供されています (例: case final R(…​) ->)。final キーワードの使用は Java 言語仕様に違反しています。

Red Hat build of OpenJDK 21.0.3 では、javac コンパイラーは Java 言語仕様に合わせて調整されています。この機能強化は、switch ステートメントに final キーワードを含むプログラムがコンパイルに失敗することを意味します。このような状況では、プログラムが正常にコンパイルされるようにするには、final キーワードを削除する必要があります。

JDK-8317300 (JDK Bug System) を参照してください。

XML Security for Java が Apache Santuario 3.0.3 に更新

Red Hat build of OpenJDK 21.0.3 では、XML 署名の実装は Apache Santuario 3.0.3 に基づいています。

この機能強化により、次の 4 つの SHA3 ベースの RSA-MGF1 SignatureMethod アルゴリズムが導入されました。

  • SHA3_224_RSA_MGF1
  • SHA3_256_RSA_MGF1
  • SHA3_384_RSA_MGF1
  • SHA3_512_RSA_MGF1

更新リリースで javax.xml.crypto.dsig.SignatureMethod API を変更して新しいアルゴリズムに定数値を提供するため、これらのアルゴリズムには次の同等の文字列リテラル値を使用します。

  • http://www.w3.org/2007/05/xmldsig-more#sha3-224-rsa-MGF1
  • http://www.w3.org/2007/05/xmldsig-more#sha3-256-rsa-MGF1
  • http://www.w3.org/2007/05/xmldsig-more#sha3-384-rsa-MGF1
  • http://www.w3.org/2007/05/xmldsig-more#sha3-512-rsa-MGF1

JDK-8319124 (JDK Bug System) を参照してください。

製品スイッチとして利用できる TrimNativeHeapInterval オプション

Red Hat build of OpenJDK 21.0.3 では、公式の製品スイッチとして -XX:TrimNativeHeapInterval=ms オプションが提供されます。この機能強化により、JVM はサポートされているプラットフォーム上で指定された間隔 (ミリ秒単位) でネイティブヒープをトリミングできるようになります。現在、この機能強化がサポートされているプラットフォームは、glibc を搭載した Linux のみです。

TrimNativeHeapInterval=0 を設定するとトリミングを無効にすることができます。トリミング機能はデフォルトで無効になっています。

JDK-8325496 (JDK Bug System) を参照してください。

SystemTray.isSupported() メソッドが、ほとんどの Linux デスクトップで false を返す

Red Hat build of OpenJDK 21.0.3 では、SystemTray API を正しくサポートしていないシステムで、java.awt.SystemTray.isSupported() メソッドが false を返します。この機能拡張は、SystemTray API 仕様に準拠しています。

SystemTray API は、システムデスクトップのタスクバーと対話して通知を提供します。SystemTray には、アプリケーションを表すアイコンが含まれている場合もあります。基盤となるプラットフォームの問題により、タスクバーアイコンの GNOME デスクトップサポートが数年間正しく機能しませんでした。このプラットフォームの問題は、GNOME デスクトップで SystemTray サポートを提供する JDK の機能に影響します。この問題は通常、GNOME Shell 44 以前を使用するシステムに影響します。

注記

一部のシステムでは、SystemTray の正しいサポートが不足していることが長年の問題となっているため、影響を受けるシステムで false を返すこの API 強化は、ユーザーへの影響を最小限に抑えられると考えられます。

JDK-8322750 (JDK Bug System) を参照してください。

Certainly R1 と E1 ルート証明書が追加される

Red Hat build of OpenJDK 21.0.3 では、cacerts トラストストアに 2 つの Certainly ルート証明書が含まれています。

証明書 1
  • 名前: Certainly
  • エイリアス名: certainlyrootr1
  • 識別名: CN=Certainly Root R1、O=Certainly、C=US
証明書 2
  • 名前: Certainly
  • エイリアス名: certainlyroote1
  • 識別名: CN=Certainly Root E1、O=Certainly、C=US

JDK-8321408 (JDK Bug System) を参照してください。

若いコレクションルートの大規模オブジェクト配列の正確な並列スキャン

若い世代のオブジェクトの収集中に、Parallel Garbage Collector (GC) は、古い世代のオブジェクトを 64 kB のストライプに分割し、若い世代への参照をスキャンします。これらのストライプはワーカースレッドに割り当てられ、並列でスキャンを実行します。

Red Hat build of OpenJDK 21 の以前のリリースでは、ワーカースレッドが独自のストライプに制限されていませんでした。この制約の欠如により、並列処理に制限が課せられました。たとえば、大きなオブジェクトが特定のワーカースレッドに割り当てられたストライプで開始した場合、このスレッドは複数のストライプにわたって何千もの参照を持つオブジェクトをスキャンすることになる可能性があります。

Red Hat build of OpenJDK 21.0.3 は、各ワーカースレッドを割り当てたストライプに制限します。各スレッドは、大きなオブジェクト配列の重要な部分のみを処理するようになりました。大きなオブジェクト配列が存在する場合、Parallel GC の一時停止は、Garbage-First (G1) コレクターの一時停止と同様になります。場合によっては、この機能強化により一時停止の長さが 75-80% 短縮されます。たとえば、以前のリリースでは 100 ミリ秒の一時停止でしたが、このリリースでは 20 ミリ秒の一時停止に短縮されます。

JDK-8310031 (JDK Bug System) を参照してください。

ZGC およびデフォルト以外の ObjectAlignmentInBytes 値を使用した場合の潜在的な JVM の障害を修正

Red Hat build of OpenJDK 21 の以前のリリースでは、-XX:+UseZGC オプションおよび -XX:ObjectAlignmentInBytes のデフォルト以外の値を指定して JVM を実行すると、JVM の失敗や誤作動につながる場合がありました。この問題は、ZBarrierSet::clone_obj_array がオブジェクト配列の末尾のパディングを無視したために発生しました。

Red Hat build of OpenJDK 21.0.3 ではこの問題が解決され、JVM の実行時に Z Garbage Collector (ZGC) と Java オブジェクトアライメントのデフォルト以外の値を使用する場合でも、JVM を正常に実行できるようになりました。

JDK-8325074 (JDK Bug System) を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.