diff --git a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java index ca905b0f252d..abf333ce4f1e 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java @@ -1137,7 +1137,7 @@ public class RefactoringUtil { paramTag.delete(); } for (PsiDocTag psiDocTag : newTags) { - anchor = docComment.addAfter(psiDocTag, anchor); + anchor = anchor != null && anchor.isValid() ? docComment.addAfter(psiDocTag, anchor) : docComment.add(psiDocTag); } } diff --git a/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0.java b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0.java new file mode 100644 index 000000000000..4ef84282282b --- /dev/null +++ b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0.java @@ -0,0 +1,14 @@ +class X { + + /** + * Has a method called {@link #mymethod(int, int)}. + */ + public class TestRefactorLink { + /** + @return nothing + @param y yparam + @param z zparam + */ + public void mymethod(int y, int z) { } + } +} diff --git a/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0_after.java b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0_after.java new file mode 100644 index 000000000000..9b5380692526 --- /dev/null +++ b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0_after.java @@ -0,0 +1,14 @@ +class X { + + /** + * Has a method called {@link #mymethod(int, int)}. + */ + public class TestRefactorLink { + /** + @return nothing + * @param z zparam + * @param y yparam + */ + public void mymethod(int z, int y) { } + } +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java index 6519401d4092..facd46ed342a 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java @@ -155,6 +155,13 @@ public class ChangeSignatureTest extends LightRefactoringTestCase { }, false); } + public void testParamJavadoc0() throws Exception { + doTest(null, new ParameterInfoImpl[] { + new ParameterInfoImpl(1, "z", PsiType.INT), + new ParameterInfoImpl(0, "y", PsiType.INT) + }, false); + } + public void testParamJavadoc1() throws Exception { doTest(null, new ParameterInfoImpl[]{ new ParameterInfoImpl(0, "z", PsiType.BOOLEAN)