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 74771341eb26..59493b2af0a6 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java @@ -702,6 +702,7 @@ public class RefactoringUtil { if (!targetClass.isInterface()) { PsiUtil.setModifierProperty(targetClass, PsiModifier.ABSTRACT, true); + prepareForAbstract(method); } else { prepareForInterface(method); @@ -717,10 +718,14 @@ public class RefactoringUtil { } private static void prepareForInterface(PsiMethod method) { + PsiUtil.setModifierProperty(method, PsiModifier.PUBLIC, false); + prepareForAbstract(method); + } + + private static void prepareForAbstract(PsiMethod method) { PsiUtil.setModifierProperty(method, PsiModifier.FINAL, false); PsiUtil.setModifierProperty(method, PsiModifier.SYNCHRONIZED, false); PsiUtil.setModifierProperty(method, PsiModifier.NATIVE, false); - PsiUtil.setModifierProperty(method, PsiModifier.PUBLIC, false); removeFinalParameters(method); } diff --git a/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass.java b/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass.java index b206e074523c..e85960397a3f 100644 --- a/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass.java +++ b/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass.java @@ -1,4 +1,4 @@ class A {} class B extends A { - public void test(){} + public final synchronized void test(){} } \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass_after.java b/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass_after.java index 56c9eeb44abf..bd6da61cfc28 100644 --- a/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass_after.java +++ b/java/java-tests/testData/refactoring/pullUp/PullUpAsAbstractInClass_after.java @@ -3,5 +3,5 @@ abstract class A { } class B extends A { @Override - public void test(){} + public final synchronized void test(){} } \ No newline at end of file