diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java index 8cfe95213ebd..6bfb821afcc0 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java @@ -333,7 +333,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { /* do nothing */ } - public static List getEnclosingMethods(PsiMethod nearest) { + public static List getEnclosingMethods(@NotNull PsiMethod nearest) { List enclosingMethods = new ArrayList<>(); enclosingMethods.add(nearest); PsiMethod method = nearest; @@ -531,7 +531,11 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { if (inplaceIntroducer instanceof InplaceIntroduceParameterPopup) { return false; } - final List enclosingMethods = getEnclosingMethods(Util.getContainingMethod(elements[0])); + final PsiMethod containingMethod = Util.getContainingMethod(elements[0]); + if (containingMethod == null) { + return false; + } + final List enclosingMethods = getEnclosingMethods(containingMethod); if (enclosingMethods.isEmpty()) { return false; } @@ -550,7 +554,9 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { ? new PsiElement[]{exprInRange} : CodeInsightUtil.findStatementsInRange(copy, range.getStartOffset(), range.getEndOffset()); } - final List enclosingMethodsInCopy = getEnclosingMethods(Util.getContainingMethod(elementsCopy[0])); + final PsiMethod containingMethodCopy = Util.getContainingMethod(elementsCopy[0]); + LOG.assertTrue(containingMethodCopy != null); + final List enclosingMethodsInCopy = getEnclosingMethods(containingMethodCopy); final MyExtractMethodProcessor processor = new MyExtractMethodProcessor(project, editor, elementsCopy, enclosingMethodsInCopy.get(enclosingMethodsInCopy.size() - 1)); try { @@ -702,7 +708,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { private static class MyExtractMethodProcessor extends ExtractMethodProcessor { private final PsiMethod myTopEnclosingMethod; - public MyExtractMethodProcessor(Project project, Editor editor, PsiElement[] elements, PsiMethod topEnclosing) { + public MyExtractMethodProcessor(Project project, Editor editor, PsiElement[] elements, @NotNull PsiMethod topEnclosing) { super(project, editor, elements, null, REFACTORING_NAME, null, null); myTopEnclosingMethod = topEnclosing; }