From 9ed60a590dbb217badfc36ede08aae60a68ee0a5 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 4 Sep 2015 15:47:30 +0300 Subject: [PATCH] skip descriptors if no psi could be restored from smart pointers --- .../intellij/codeInspection/ex/QuickFixAction.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java b/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java index d21c1cf1e678..c56636c6f972 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java @@ -31,6 +31,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CustomShortcutSet; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.ReadonlyStatusHandler; @@ -50,6 +51,8 @@ import java.util.*; * @author max */ public class QuickFixAction extends AnAction { + private static final Logger LOG = Logger.getInstance("#" + QuickFixAction.class.getName()); + public static final QuickFixAction[] EMPTY = new QuickFixAction[0]; protected final InspectionToolWrapper myToolWrapper; @@ -311,6 +314,14 @@ public class QuickFixAction extends AnAction { @Override protected void applyFix(Project project, CommonProblemDescriptor descriptor) { + if (descriptor instanceof ProblemDescriptor && + ((ProblemDescriptor)descriptor).getStartElement() == null && + ((ProblemDescriptor)descriptor).getEndElement() == null) { + if (LOG.isDebugEnabled()) { + LOG.debug("Invalidated psi for " + descriptor); + } + return; + } QuickFixAction.this.applyFix(myProject, myContext, new CommonProblemDescriptor[]{descriptor}, myIgnoredElements); }