ページの先頭行へ戻る
Enterprise Application Platform V2.0.0 リリース情報

2.3.23 Finalizeの無効化

変更内容

Finalizeが将来のリリースで削除されます。これにより、Finalizeに関連するメソッドをオーバーライドして使用しているアプリケーションをコンパイルしたときに出力される警告メッセージを変更しました。

また、SSL/TLSの通信に使用するソケットがFinalizeによって自動的に閉じられない場合があります。


非互換1

V1.2以前

Finalizeに関わるメソッドをオーバーライドして使用するアプリケーションをコンパイルする場合、以下のようなメッセージが出力されます。

ノート:Sample.javaは推奨されないAPIを使用またはオーバーライドしています。
ノート:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。

V2.0以降

Finalizeに関わるメソッドをオーバーライドして使用するアプリケーションをコンパイルする場合、以下のようなメッセージが出力されます。

Sample.java:11: 警告: [removal] Objectのfinalize()は推奨されておらず、削除用にマークされています
    protected void finalize() throws Throwable {
                   ^
警告1個

対処方法1

ありません。


非互換2

V1.2以前

finalize()メソッドによってclose_notifyメッセージが送信され、ソケットがクリーンアップされます。

V2.0以降

SSLSocketのインスタンスである既存の接続されたソケットを使用してTLS接続が構築されている場合、アプリケーションで明示的にソケットを閉じない限りclose_notifyメッセージが送信されず、既存のソケットがクリーンアップされません。

対処方法2

アプリケーションから明示的にソケットを閉じるようにしてください。