From 10b3500d3e65e3919ba79292c156e52131b69788 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 9 May 2016 17:27:22 +0200 Subject: [PATCH] don't access disposed project when handling tree node removal (EA-82039 - assert: ComponentManagerImpl.getPicoContainer) --- .../ide/projectView/impl/nodes/PsiTreeAnchorizer.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiTreeAnchorizer.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiTreeAnchorizer.java index fe89de1477ac..bdec5e1ef526 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiTreeAnchorizer.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiTreeAnchorizer.java @@ -75,11 +75,11 @@ public class PsiTreeAnchorizer extends TreeAnchorizer { @Override public void freeAnchor(final Object element) { if (element instanceof SmartPointerWrapper) { - ApplicationManager.getApplication().runReadAction(new Runnable() { - @Override - public void run() { - SmartPsiElementPointer pointer = ((SmartPointerWrapper)element).myPointer; - SmartPointerManager.getInstance(pointer.getProject()).removePointer(pointer); + ApplicationManager.getApplication().runReadAction(() -> { + SmartPsiElementPointer pointer = ((SmartPointerWrapper)element).myPointer; + Project project = pointer.getProject(); + if (!project.isDisposed()) { + SmartPointerManager.getInstance(project).removePointer(pointer); } }); }