変更内容
Finalizeが将来のリリースで削除されます。これにより、Finalizeに関連するメソッドをオーバーライドして使用しているアプリケーションをコンパイルしたときに出力される警告メッセージを変更しました。
また、SSL/TLSの通信に使用するソケットがFinalizeによって自動的に閉じられない場合があります。
非互換1
Finalizeに関わるメソッドをオーバーライドして使用するアプリケーションをコンパイルする場合、以下のようなメッセージが出力されます。
ノート:Sample.javaは推奨されないAPIを使用またはオーバーライドしています。 |
Finalizeに関わるメソッドをオーバーライドして使用するアプリケーションをコンパイルする場合、以下のようなメッセージが出力されます。
Sample.java:11: 警告: [removal] Objectのfinalize()は推奨されておらず、削除用にマークされています protected void finalize() throws Throwable { ^ 警告1個 |
対処方法1
ありません。
非互換2
finalize()メソッドによってclose_notifyメッセージが送信され、ソケットがクリーンアップされます。
SSLSocketのインスタンスである既存の接続されたソケットを使用してTLS接続が構築されている場合、アプリケーションで明示的にソケットを閉じない限りclose_notifyメッセージが送信されず、既存のソケットがクリーンアップされません。
対処方法2
アプリケーションから明示的にソケットを閉じるようにしてください。