XSourcePosition (@NotNull XBreakpoint<JavaLineBreakpointProperties> breakpoint) { JavaLineBreakpointProperties properties = breakpoint.getProperties(); if (properties == null) return null; boolean condRet = properties.isConditionalReturn(); Integer lambdaOrdinal = properties.getLambdaOrdinal(); boolean isLambda = lambdaOrdinal != null && lambdaOrdinal != -1; if (!condRet && !isLambda) return null; return ReadAction.compute(() -> { SourcePosition linePosition = createLineSourcePosition((XLineBreakpointImpl)breakpoint); if (linePosition != null) { PsiElement theReturn = condRet ? findSingleConditionalReturn(linePosition) : null; if (theReturn != null) { return XSourcePositionImpl.createByElement(theReturn); } else if (isLambda) { return DebuggerUtilsEx.toXSourcePosition(new PositionManagerImpl.JavaSourcePosition(linePosition, lambdaOrdinal)); } } return null; }); }