diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java index 359f61fdf403..8ad0f30c03c0 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java @@ -63,6 +63,7 @@ import com.intellij.ui.classFilter.ClassFilter; import com.intellij.ui.content.Content; import com.intellij.unscramble.ThreadDumpPanel; import com.intellij.unscramble.ThreadState; +import com.intellij.util.DocumentUtil; import com.intellij.util.SmartList; import com.intellij.util.containers.ContainerUtil; import com.intellij.xdebugger.XSourcePosition; @@ -798,7 +799,7 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils { return Collections.emptyList(); } PsiElement element = position.getElementAt(); - final TextRange lineRange = new TextRange(document.getLineStartOffset(line), document.getLineEndOffset(line)); + final TextRange lineRange = DocumentUtil.getLineTextRange(document, line); do { PsiElement parent = element.getParent(); if (parent == null || (parent.getTextOffset() < lineRange.getStartOffset())) { @@ -813,7 +814,8 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils { @Override public void visitLambdaExpression(PsiLambdaExpression expression) { super.visitLambdaExpression(expression); - if (!onlyOnTheLine || lineRange.intersects(expression.getTextRange())) { + PsiElement body = expression.getBody(); + if (!onlyOnTheLine || (body != null && lineRange.intersects(body.getTextRange()))) { lambdas.add(expression); } }