diff --git a/source/com/intellij/openapi/editor/actions/MoveStatementHandler.java b/source/com/intellij/openapi/editor/actions/MoveStatementHandler.java index b1fe8da2abb8..55d1e7d83d91 100644 --- a/source/com/intellij/openapi/editor/actions/MoveStatementHandler.java +++ b/source/com/intellij/openapi/editor/actions/MoveStatementHandler.java @@ -118,9 +118,9 @@ class MoveStatementHandler extends EditorWriteActionHandler { if (result.startLine <= 1 && !isDown) return null; if (result.endLine >= maxLine - 1 && isDown) return null; - final PsiElement guard = - PsiTreeUtil.getParentOfType(file.findElementAt(editor.getCaretModel().getOffset()), new Class[]{PsiMethod.class, PsiClassInitializer.class, - PsiClass.class}); + final PsiElement elementAt = file.findElementAt(editor.getCaretModel().getOffset()); + if (elementAt == null) return null; + final PsiElement guard = PsiTreeUtil.getParentOfType(elementAt, new Class[]{PsiMethod.class, PsiClassInitializer.class, PsiClass.class}); // move operation should not go out of method final int insertOffset = editor.logicalPositionToOffset(new LogicalPosition(isDown ? result.endLine + 2 : result.startLine - 1, 0)); if (guard != null && !guard.getTextRange().contains(insertOffset)) return null;