diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/util/RefactoringUtil.java b/java/java-impl-refactorings/src/com/intellij/refactoring/util/RefactoringUtil.java index cedf1eb29095..95fb44b8d8c6 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/util/RefactoringUtil.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/util/RefactoringUtil.java @@ -383,7 +383,9 @@ public final class RefactoringUtil { body.delete(); } - PsiUtil.setModifierProperty(method, PsiModifier.ABSTRACT, true); + if (!targetClass.isInterface()) { + PsiUtil.setModifierProperty(method, PsiModifier.ABSTRACT, true); + } } if (!targetClass.isInterface()) { diff --git a/java/java-tests/testData/refactoring/pullUp/NoAbstractModifiersOnInterfaceMethods.java b/java/java-tests/testData/refactoring/pullUp/NoAbstractModifiersOnInterfaceMethods.java new file mode 100644 index 000000000000..dc5ac306f8d2 --- /dev/null +++ b/java/java-tests/testData/refactoring/pullUp/NoAbstractModifiersOnInterfaceMethods.java @@ -0,0 +1,8 @@ +interface Foo1 { + void foo(); +} +class Bar implements Foo1 { + public void foo() { + System.out.println("hello"); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/pullUp/NoAbstractModifiersOnInterfaceMethods_after.java b/java/java-tests/testData/refactoring/pullUp/NoAbstractModifiersOnInterfaceMethods_after.java new file mode 100644 index 000000000000..4e8ef2ba5b3d --- /dev/null +++ b/java/java-tests/testData/refactoring/pullUp/NoAbstractModifiersOnInterfaceMethods_after.java @@ -0,0 +1,9 @@ +interface Foo1 { + void foo(); +} +class Bar implements Foo1 { + @Override + public void foo() { + System.out.println("hello"); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/PullUpTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/PullUpTest.java index 42615d717b94..464ea650485c 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/PullUpTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/PullUpTest.java @@ -35,6 +35,10 @@ public class PullUpTest extends LightRefactoringTestCase { doTest(new RefactoringTestUtil.MemberDescriptor("foo", PsiMethod.class, true)); } + public void testNoAbstractModifiersOnInterfaceMethods() { + doTest(new RefactoringTestUtil.MemberDescriptor("foo", PsiMethod.class, true)); + } + public void testQualifiedReference() { // IDEADEV-25008 doTest(new RefactoringTestUtil.MemberDescriptor("x", PsiField.class), new RefactoringTestUtil.MemberDescriptor("getX", PsiMethod.class),