В моем приложении Java, когда я закрываю открытую модель, некоторые объекты не собираются сборщиком мусора. Я использую Eclipse MAT для определения путей к корню сборщика мусора и убеждаюсь, что для ссылок установлено значение null после закрытия модели, чтобы сборщик мусора мог очистить память.
Я не могу удалить следующие ссылки (отрывок из выходных данных Eclipse MAT).
myTree javax.swing.JTree uiTreeExpansionListener, keyListener, focusListener javax.swing.plaf.basic.BasicTreeUI$Handler pressedPath javax.swing.tree.TreePath lastPathComponent myClass
Если myTree (JTree) не сбрасывает / не очищает значение в слушателях, то в lastPathComponent сохраняется ссылка на объект myClass. и это не сборщик мусора.
Есть идеи, как сказать дереву не поддерживать ссылки?
Изменить: я использовал следующий метод для очистки ссылок, но он не очищает все (упомянутые выше) ссылки.
public void clear() { cancelEditing(); collapseAll(); clearSelection(); clearToggledPaths(); resetKeyboardActions(); fireTreeCollapsed(null); }