@Override
  public XSourcePosition getSourcePosition(@NotNull XBreakpoint<JavaLineBreakpointProperties> breakpoint) {
    JavaLineBreakpointProperties properties = breakpoint.getProperties();
    if (properties == null) return null;

    boolean condRet = properties.isConditionalReturn();
    boolean isLambda = properties.isInLambda();
    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) {
          Integer lambdaOrdinal = properties.getLambdaOrdinal();
          assert lambdaOrdinal != null;
          return DebuggerUtilsEx.toXSourcePosition(new PositionManagerImpl.JavaSourcePosition(linePosition, lambdaOrdinal));
        }
      }
      return null;
    });
  }
@Override
  public XSourcePosition getSourcePosition(@NotNull XBreakpoint<JavaLineBreakpointProperties> breakpoint)