diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AsyncProjectViewSupport.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AsyncProjectViewSupport.java index 119ea7ad7d35..f627b6cd2baf 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AsyncProjectViewSupport.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AsyncProjectViewSupport.java @@ -225,6 +225,11 @@ class AsyncProjectViewSupport { } private void updatePresentationsFromRootTo(@NotNull VirtualFile file) { + // find first valid parent for removed file + while (!file.isValid()) { + file = file.getParent(); + if (file == null) return; + } SmartList list = new SmartList<>(); acceptAndUpdate(new ProjectViewFileVisitor(file, null) { @NotNull diff --git a/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeViewTreeModel.java b/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeViewTreeModel.java index c8e386e6d1be..f93b9d94bd8b 100644 --- a/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeViewTreeModel.java +++ b/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeViewTreeModel.java @@ -273,6 +273,11 @@ public final class ScopeViewTreeModel extends BaseTreeModel im } private void notifyPresentationChanged(@NotNull VirtualFile file) { + // find first valid parent for removed file + while (!file.isValid()) { + file = file.getParent(); + if (file == null) return; + } List list = new SmartList<>(); find(file, list, found -> { list.forEach(node -> update(node, false));