IDEA-199439 ISE at com.intellij.ide.hierarchy.HierarchyBrowserBaseEx.$$$reportNull$$$0

This commit is contained in:
Alexey Kudravtsev
2018-09-26 13:20:02 +03:00
parent a8906c1ba8
commit 998f0d18c0
@@ -473,7 +473,11 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem
@Override
StructureTreeModel getCurrentBuilder() {
String viewType = getCurrentViewType();
return viewType == null ? null : getTreeModel(viewType);
if (viewType == null) {
return null;
}
Sheet sheet = myType2Sheet.get(viewType);
return sheet == null ? null : sheet.myStructureTreeModel;
}
final boolean isValidBase() {
@@ -510,21 +514,24 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem
@Override
public void dispose() {
disposeBuilders();
disposeAllSheets();
super.dispose();
}
private void disposeBuilders() {
private void disposeAllSheets() {
for (final Sheet sheet : myType2Sheet.values()) {
if (sheet.myAsyncTreeModel != null) {
Disposer.dispose(sheet.myAsyncTreeModel);
sheet.myAsyncTreeModel = null;
sheet.myStructureTreeModel = null;
}
if (sheet.myStructureTreeModel != null) {
Disposer.dispose(sheet.myStructureTreeModel);
sheet.myStructureTreeModel = null;
}
disposeSheet(sheet);
}
}
private static void disposeSheet(@NotNull Sheet sheet) {
if (sheet.myAsyncTreeModel != null) {
Disposer.dispose(sheet.myAsyncTreeModel);
sheet.myAsyncTreeModel = null;
}
if (sheet.myStructureTreeModel != null) {
Disposer.dispose(sheet.myStructureTreeModel);
sheet.myStructureTreeModel = null;
}
}
@@ -550,12 +557,10 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem
}
if (currentBuilderOnly) {
Sheet sheet = myType2Sheet.get(currentViewType);
Disposer.dispose(sheet.myAsyncTreeModel);
sheet.myAsyncTreeModel = null;
sheet.myStructureTreeModel = null;
disposeSheet(sheet);
}
else {
disposeBuilders();
disposeAllSheets();
}
setHierarchyBase(element);
validate();