skip descriptors if no psi could be restored from smart pointers

This commit is contained in:
Anna Kozlova
2015-09-04 16:16:46 +03:00
parent fa356948c9
commit 9ed60a590d
@@ -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);
}