diff --git a/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java b/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java index c72f7c3e7d0c..a964261a0cc1 100644 --- a/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java @@ -219,18 +219,19 @@ public class EncapsulateFieldsProcessor extends BaseRefactoringProcessor { if (existing != null) { for (PsiReference reference : ReferencesSearch.search(existing)) { final PsiElement place = reference.getElement(); - LOG.assertTrue(place instanceof PsiReferenceExpression); - final PsiExpression qualifierExpression = ((PsiReferenceExpression)place).getQualifierExpression(); - final PsiClass inheritor; - if (qualifierExpression == null) { - inheritor = PsiTreeUtil.getParentOfType(place, PsiClass.class, false); - } else { - inheritor = PsiUtil.resolveClassInType(qualifierExpression.getType()); - } + if (place instanceof PsiReferenceExpression) { + final PsiExpression qualifierExpression = ((PsiReferenceExpression)place).getQualifierExpression(); + final PsiClass inheritor; + if (qualifierExpression == null) { + inheritor = PsiTreeUtil.getParentOfType(place, PsiClass.class, false); + } else { + inheritor = PsiUtil.resolveClassInType(qualifierExpression.getType()); + } - if (InheritanceUtil.isInheritorOrSelf(inheritor, myClass, true)) { - conflicts.putValue(existing, "There is already a " + RefactoringUIUtil.getDescription(existing, true) + " which would be hidden by generated " + (isGetter ? "getter" : "setter")); - break; + if (InheritanceUtil.isInheritorOrSelf(inheritor, myClass, true)) { + conflicts.putValue(existing, "There is already a " + RefactoringUIUtil.getDescription(existing, true) + " which would be hidden by generated " + (isGetter ? "getter" : "setter")); + break; + } } } } diff --git a/java/java-tests/testData/refactoring/encapsulateFields/javadocRefs1/after/Test.java b/java/java-tests/testData/refactoring/encapsulateFields/javadocRefs1/after/Test.java new file mode 100644 index 000000000000..fcb0b95ece96 --- /dev/null +++ b/java/java-tests/testData/refactoring/encapsulateFields/javadocRefs1/after/Test.java @@ -0,0 +1,24 @@ +class B { + public int getI() { + + return 0; + } + + static class A { + + private int i = 0; + + /** + * {@link B#getI()} + */ + void f() {} + + public int getI() { + return i; + } + + public void setI(int i) { + this.i = i; + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/encapsulateFields/javadocRefs1/before/Test.java b/java/java-tests/testData/refactoring/encapsulateFields/javadocRefs1/before/Test.java new file mode 100644 index 000000000000..e1cff904ba5f --- /dev/null +++ b/java/java-tests/testData/refactoring/encapsulateFields/javadocRefs1/before/Test.java @@ -0,0 +1,16 @@ +class B { + public int getI() { + + return 0; + } + + static class A { + + private int i = 0; + + /** + * {@link B#getI()} + */ + void f() {} + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/EncapsulateFieldsTest.java b/java/java-tests/testSrc/com/intellij/refactoring/EncapsulateFieldsTest.java index 4f17545a9c65..863e162eff6a 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/EncapsulateFieldsTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/EncapsulateFieldsTest.java @@ -63,6 +63,10 @@ public class EncapsulateFieldsTest extends MultiFileTestCase{ public void testJavadocRefs() throws Exception { doTest("i", "A", null); } + + public void testJavadocRefs1() throws Exception { + doTest("i", "B.A", null); + } public void testHideOuterclassMethod() throws Exception { doTest("i", "A.B", "There is already a method A.getI() which would be hidden by generated getter");