レガシー Java 製品のプロファイリングを行っており、YourKit を使用してメモリ リークを探しています。私はかなりのプラグインをしていますが、解決できない問題に遭遇し続けています。
私はかなりの数のウィンドウ/ダイアログを持っていますが、それらを閉じると (JDialog から派生した場合は dispose を呼び出します)、それらは GC されません。YourKit は、GC への唯一のルートが「sun.awt.windows.WDialogPeer [JNI Global] のターゲット」であると報告しています。ほとんどが MetalToolBarUI から来ているように見える弱参照もいくつかあります。おそらくこれらは、WDialogPeer からのこの 1 つの強力な参照のためにのみ存在します。
誰かがこれを以前に見たことがありますか? または、WDialogPeer が私の JDialogs/JFrames を保持している方法および/または理由を教えてもらえますか? どうすればきれいにできますか?