diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java index cc2295d1c616..b3b533597c71 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java @@ -15,6 +15,7 @@ */ package com.intellij.codeInsight.intention.impl; +import com.intellij.codeInsight.CodeInsightUtilBase; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiFile; @@ -38,7 +39,6 @@ public class ConvertAbsolutePathToRelativeIntentionAction extends BaseIntentionA @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { - final PsiReference reference = file.findReferenceAt(editor.getCaretModel().getOffset()); final FileReference fileReference = reference == null ? null : findFileReference(reference); @@ -81,6 +81,8 @@ public class ConvertAbsolutePathToRelativeIntentionAction extends BaseIntentionA @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { + if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; + final PsiReference reference = file.findReferenceAt(editor.getCaretModel().getOffset()); final FileReference fileReference = reference == null ? null : findFileReference(reference); if (fileReference != null) { diff --git a/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java b/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java index 0a237b0e65d9..c7495e451384 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java +++ b/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java @@ -35,6 +35,7 @@ import org.jetbrains.annotations.Nullable; public abstract class PsiElementBaseIntentionAction extends BaseIntentionAction { @Override public final void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { + if (!file.getManager().isInProject(file)) return; final PsiElement element = getElement(editor, file); if (element != null) { invoke(project, editor, element); @@ -54,6 +55,7 @@ public abstract class PsiElementBaseIntentionAction extends BaseIntentionAction @Override public final boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { + if (!file.getManager().isInProject(file)) return false; final PsiElement element = getElement(editor, file); return element != null && isAvailable(project, editor, element); } @@ -71,7 +73,6 @@ public abstract class PsiElementBaseIntentionAction extends BaseIntentionAction @Nullable protected static PsiElement getElement(Editor editor, @NotNull PsiFile file) { - if (!file.getManager().isInProject(file)) return null; CaretModel caretModel = editor.getCaretModel(); int position = caretModel.getOffset(); return file.findElementAt(position);