私のJavaアプリケーションでは、開いているモデルを閉じると、一部のオブジェクトがガベージコレクションされません。Eclipse MATを使用してGCルートへのパスを検出し、モデルを閉じた後に参照がnullに設定されていることを確認して、GCがメモリをクリーンアップできるようにします。
以下の参照(Eclipse MAT出力からの抜粋)をクリアできません。
myTree javax.swing.JTree
uiTreeExpansionListener、keyListener、focusListener javax.swing.plaf.basic.BasicTreeUI $ Handler
PressedPath javax.swing.tree.TreePath
lastPathComponent myClass
myTree(JTree)がリスナーの値をリセット/クリアしない場合、myClassのオブジェクトへの参照がlastPathComponentに保持され、ガベージコレクションされません。
参照を維持しないようにツリーに指示する方法について何かアイデアはありますか?
編集:参照をクリアするために次のメソッドを配置しましたが、すべての(上記の)参照をクリアするわけではありません。
public void clear(){
cancelEditing();
CollapseAll();
明確な選択();
clearToggledPaths();
resetKeyboardActions();
fireTreeCollapsed(null);
}