From b0a4fdfbfc54bf8f063b9d69aff92ca30c9bf61c Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Thu, 22 Oct 2009 11:28:50 +0400 Subject: [PATCH] fix java.lang.IndexOutOfBoundsException --- .../debugger/ui/breakpoints/MethodBreakpoint.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java index 2d1f160e4d1a..262f394e1963 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java @@ -303,12 +303,19 @@ public class MethodBreakpoint extends BreakpointWithHighlighter { public MethodDescriptor compute() { //PsiMethod method = DebuggerUtilsEx.findPsiMethod(psiJavaFile, endOffset); PsiMethod method = PositionUtil.getPsiElementAt(project, PsiMethod.class, sourcePosition); - if (method == null || document.getLineNumber(method.getTextOffset()) < sourcePosition.getLine()) { + if (method == null) { + return null; + } + final int methodOffset = method.getTextOffset(); + if (methodOffset < 0) { + return null; + } + if (document.getLineNumber(methodOffset) < sourcePosition.getLine()) { return null; } final PsiIdentifier identifier = method.getNameIdentifier(); - int methodNameOffset = identifier != null? identifier.getTextOffset() : method.getTextOffset(); + int methodNameOffset = identifier != null? identifier.getTextOffset() : methodOffset; final MethodDescriptor descriptor = new MethodDescriptor(); //noinspection HardCodedStringLiteral