diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java index 53591010d56d..0ba27ef3eec2 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java @@ -280,7 +280,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr boolean toInsertDefaultValue = needDefaultValue(changeInfo, caller); if (toInsertDefaultValue && ref instanceof PsiReferenceExpression) { final PsiExpression qualifierExpression = ((PsiReferenceExpression)ref).getQualifierExpression(); - if (qualifierExpression instanceof PsiSuperExpression && callerSignatureIsAboutToChangeToo(caller, usages)) { + if (qualifierExpression instanceof PsiSuperExpression && caller != null && callerSignatureIsAboutToChangeToo(caller, usages)) { toInsertDefaultValue = false; } } @@ -300,7 +300,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr } } - private static boolean callerSignatureIsAboutToChangeToo(final PsiMethod caller, final UsageInfo[] usages) { + private static boolean callerSignatureIsAboutToChangeToo(@NotNull final PsiMethod caller, final UsageInfo[] usages) { for (UsageInfo usage : usages) { if (usage instanceof MethodCallUsageInfo && MethodSignatureUtil.isSuperMethod(((MethodCallUsageInfo)usage).getReferencedMethod(), caller)) { diff --git a/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy.java b/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy.java index b332ce73eadd..6aa27f5a4a45 100644 --- a/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy.java +++ b/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy.java @@ -5,5 +5,9 @@ class Foo { void foo(){ super.foo(); } + + { + super.foo(); + } } } \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy_after.java b/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy_after.java index 08cf46f1074f..1acb31f5a3eb 100644 --- a/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy_after.java +++ b/java/java-tests/testData/refactoring/changeSignature/IntroduceParameterWithDefaultValueInHierarchy_after.java @@ -5,5 +5,9 @@ class Foo { void foo(int i){ super.foo(i); } + + { + super.foo(0); + } } } \ No newline at end of file