diff --git a/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java b/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java index be0bb458551b..70157913b223 100644 --- a/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java +++ b/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java @@ -1,12 +1,17 @@ package com.intellij.refactoring.rename; +import com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil; import com.intellij.openapi.util.Condition; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.psi.PsiJavaFile; import com.intellij.psi.JspPsiUtil; public class JavaVetoRenameCondition implements Condition { public boolean value(final PsiElement element) { - return element instanceof PsiJavaFile && !JspPsiUtil.isInJspFile(element) && ((PsiJavaFile) element).getClasses().length > 0; + return element instanceof PsiJavaFile && + !JspPsiUtil.isInJspFile(element) && + !CollectHighlightsUtil.isOutsideSourceRootJavaFile((PsiFile)element) && + ((PsiJavaFile) element).getClasses().length > 0; } } diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java b/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java index d7c61e86579a..860e59d8a47f 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java @@ -68,7 +68,7 @@ public class PsiElementRenameHandler implements RenameHandler { static boolean canRename(Project project, Editor editor, PsiElement element) { if (element == null) return false; - if (CollectHighlightsUtil.isOutsideSourceRootJavaFile(element.getContainingFile())) return false; + if (!(element instanceof PsiFile) && CollectHighlightsUtil.isOutsideSourceRootJavaFile(element.getContainingFile())) return false; boolean hasRenameProcessor = RenamePsiElementProcessor.forElement(element) != RenamePsiElementProcessor.DEFAULT; boolean hasWritableMetaData = element instanceof PsiMetaOwner && ((PsiMetaOwner)element).getMetaData() instanceof PsiWritableMetaData;