From 1304f31e35e8d89eefb8f982b1d9fbceb3e44bd2 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 22 Feb 2017 14:52:00 +0300 Subject: [PATCH] take care to not access myTree in detached mode to fix EA-97339 - NPE: UsageViewImpl.rulesChanged --- .../com/intellij/usages/impl/UsageViewImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java index 678e39376e5e..6d43a1812a7a 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java @@ -847,7 +847,9 @@ public class UsageViewImpl implements UsageView { } final List states = new ArrayList<>(); - captureUsagesExpandState(new TreePath(myTree.getModel().getRoot()), states); + if (myTree != null) { + captureUsagesExpandState(new TreePath(myTree.getModel().getRoot()), states); + } final List allUsages = new ArrayList<>(myUsageNodes.keySet()); Collections.sort(allUsages, USAGE_COMPARATOR); final Set excludedUsages = getExcludedUsages(); @@ -865,18 +867,22 @@ public class UsageViewImpl implements UsageView { appendUsage(usage); } }); - excludeUsages(excludedUsages.toArray(new Usage[excludedUsages.size()])); + if (myTree != null) { + excludeUsages(excludedUsages.toArray(new Usage[excludedUsages.size()])); + } if (myCentralPanel != null) { setupCentralPanel(); } SwingUtilities.invokeLater(() -> { if (isDisposed) return; - restoreUsageExpandState(states); - updateImmediately(); + if (myTree != null) { + restoreUsageExpandState(states); + updateImmediately(); + } }); } - private void captureUsagesExpandState(TreePath pathFrom, final Collection states) { + private void captureUsagesExpandState(@NotNull TreePath pathFrom, @NotNull Collection states) { ApplicationManager.getApplication().assertIsDispatchThread(); if (!myTree.isExpanded(pathFrom)) { return;