Open Liberty 23.0.0.1 の EPLv2 への再ライセンス
23.0.0.1 リリースでは、Liberty が EPLv1 から EPLv2 へと再ライセンスされました。 また、このリリースには様々なバグフィックスが含まれています。
Open Liberty 23.0.0.1では、
23.0.0.1.で修正されたバグの一覧を見ることができます。
以前の Open Liberty GA リリースのブログ・ポストもご覧ください。
23.0.0.1を使用してアプリを実行する
Mavenを使う時には下記の設定を使ってください。
<dependency>
<groupId>io.openliberty</groupId>
<artifactId>openliberty-runtime</artifactId>
<version>23.0.0.1</version>
<type>zip</type>
</dependency>
Gradleの場合は、下記の設定を使ってください。
dependencies {
libertyRuntime group: 'io.openliberty', name: 'openliberty-runtime', version: '[23.0.0.1,)'
}
Dockerを使っているときは、下記のイメージを使ってください。
FROM open-liberty
または、Open Libertyの ダウンロードページからダウンロードしてください。
Open LibertyのライセンスはEPLv2になりました
2022年12月7日、Open LibertyのEPLv2への再ライセンス提案のブログ記事を公開し、Open LibertyのライセンスをEPLv1からEPLv2への変更についてコミュニティに意見を求めました。 この提案に対して否定的なフィードバックがなかったため、私たちはこの変更を進めました。結果として、Open Liberty 23.0.0.1はEPLv2ライセンスのもとでリリースされます。 EPLv1からEPLv2への移行の理由と影響についてのより詳しい情報は、proposal blog記事をご覧ください。
主なバグ修正
以下のセクションでは、このリリースで修正したバグの一部について説明します。興味がある場合は23.0.0.1の全バグ修正リストを参照してください。
-
JDK20 以降では、最低でも 1.8 の jdkSourceLevel を使用
JDK 20 では、
javac
が Java 1.7 のコンパイルのサポートを終了しています。この変更により、JSPでjdkSourceLevel="17"
(Java version 1.7) を指定した場合、以下のエラーが発生します。com.ibm.ws.jsp.JspCoreException: JSPG0049E: /xxxxxxxxx.jsp failed to compile : error: Source option 7 is no longer supported. Use 8 or later.
Java 20以降をランタイムとする場合、ユーザが指定した
jdkSourceLevel
に低いレベルが指定されると、18
に上書きされます。 修正後、Java 20以降を使用する場合、jdkSourceLevel
に17
以下が指定されると、その値は18
に上書きされるようになりました。 -
ファイルモニタリングでデフォルトのkeystore ファイルが検出されない
updateTrigger
属性にmbean
(デフォルト値) を使用すると、変更が発生したときにデフォルトの keystore ファイルがリロードされないという問題が発生しました。この問題は解決され、このシナリオでファイル監視が適切に行われ、期待通りにファイルがリロードされるようになりました。
-
JDBCDriverService; Booleanパラメータに関する問題
Microsoft JDBC ドライバの変更により、
properties.microsoft.sqlserver
プロパティの属性に boolean 値が使用された場合にリグレッションが発生するようになりました。この変更により、以下の例のようなエラーが発生します。com.ibm.ws.jdbc.internal.JDBCDriverService W DSRA8021W: Warning: error setting 'encrypt'=true: java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
この問題を解決するために、
boolean
値を現在期待されているString
に変換する変更が行なわれました。 -
IndexOutOfBoundsExceptionがリソース停止中に発生することがある
バックエンドリソースの停止中に
java.lang.IndexOutOfBoundsException
が発生する可能性があります。停止中は、破棄するようにマークされた接続を再利用すべきではありません。不良な接続は削除されますが、次のマッチングによって再利用しようとすると、次のような例外がスローされる可能性があります。StackTrace=java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:670) at java.util.ArrayList.remove(ArrayList.java:509) at com.ibm.ejs.j2c.FreePool.getFreeConnection(FreePool.java:658)
この問題は解決され、
java.lang.IndexOutOfBoundsException
は発生しなくなりました。 -
JTOpen Toolbox driver 11.1 Open LibertyからIBM iへのJDBC接続に失敗する
IBM JTOpen Toolbox driver 11.1 を使用して IBM i システムとの JDBC 接続を確立すると、次のエラーで接続に失敗します。
{exception=The application server rejected the connection. (Password is not set.) DSRA0010E: SQL State = 08004, Error Code = -99,999, id=jdbc/database}
およびスタックトレース
[INFO] [WARNING ] DSRA8021W: Warning: error setting 'password'=******: java.lang.NoSuchMethodException: [C.<init>(java.lang.String) [INFO] at java.base/java.lang.Class.getConstructor0(Class.java:3585) [INFO] at java.base/java.lang.Class.getConstructor(Class.java:2271) [INFO] at com.ibm.ws.jdbc.internal.JDBCDriverService.setProperty(JDBCDriverService.java:1005) ...
ランタイムが更新され、パスワードの
char[]
値を扱えるようになり、この問題が解決されました。 -
シャットダウン中にメッセージングクライアントがハングアップする
クライアントとして動作するサーバーが新しいキーストアを作成している間に、アプリケーションがリモートメッセージングエンジンに接続しようとすると、小さなタイミングウィンドウが存在することがあります。メッセージングクライアントのシャットダウン中に、新しい送信接続が作成され、それがクリーンアップされない可能性がありました。この場合、次のサーバーのシャットダウンは、無期限にハングアップします。
この問題は、メッセージングクライアントがシャットダウンしている間は、新しい送信接続を許可しないようにすることで解決しました。
-
JSPコンパイル時のシンタックスエラーは一貫してエラーJSPG0077Eを出力
JSP Syntax Error (
JspCoreException
) のすべてのケースでJSPG0077E
エラーメッセージがmessages.log
とconsole.log
に出力されていませんでした。 このメッセージは、以前はコンパイルされておらず、プリコンパイルが無効になっている JSP でシンタックスエラーが発生した場合に表示されます。この問題は解決され、`JSPG0077E`のエラーメッセージはログに正しく出力されるようになりました。
-
Liberty Windowsサービスを起動後すぐに停止するとハングする現象が見られる
LibertyサーバーをWindowsサービスとして登録した場合、起動後すぐにサービスを停止すると、ハングアップする現象が発生します。
この問題は解決され、サービスを開始後すぐに停止してもサーバーがハングアップすることはなくなりました。
-
スクリプトが server.env の enable_variable_expansion インジケーターを正しく認識しない
documentedと同様に
server
コマンド スクリプトはserver.env
ファイルで# enable_variable_expansion
というコメントを見つけたときに変数展開を許可します。しかし、wlp/bin
以下の他のスクリプトは# enable_variable_expansion
というコメントを無視し、期待した変数の展開が行なわれません。この問題は解決され、
wlp/bin
ディレクトリにあるすべてのスクリプトは、server.env
ファイルに# enable_variable_expansion
というコメントが設定されると、変数展開を適切にサポートするようになりました。 -
oauthForm.jsでPKCEパラメータがコピーされない
` /authorize` エンドポイントを通してアクセスされるconsent ページは、オリジナルのリクエストからすべてのパラメータを渡すわけではありません。これにより、PKCE の
code_challenge
とcode_challenge_method
パラメータが欠落し、結果として承認エンドポイントからCWOAU0033E
エラーが発生します。この問題は解決され、PKCEのパラメーターは受け入れられています。
今すぐOpen Liberty 23.0.0.1を入手する
こちらのリンクから入手できます。 Maven、Gradle、Docker、およびダウンロード可能なアーカイブとして実行されます