private boolean isProxyCall(DebugProcessImpl process, Method method, @Nullable StackFrameProxyImpl stackFrame) {
    try {
      String signature = method.signature();
      if (stackFrame != null && signature != null && signature.endsWith(PROXY_CALL_SIGNATURE_POSTFIX)) {
        String methodName = method.name();
        boolean match = false;
        // standard
        if ("invoke".equals(methodName)) {
          ReferenceType type = method.declaringType();
          if ((type instanceof ClassType) &&
              ((ClassType)type).interfaces().stream().map(InterfaceType::name).anyMatch("java.lang.reflect.InvocationHandler"::equals)) {
            match = true;
          }
        }
        if (DebuggerUtilsEx.isLambdaName(methodName)) {
          match = true;
        }
        else {
          ObjectReference thisObject = stackFrame.thisObject();
          if (thisObject != null && StringUtil.containsIgnoreCase(thisObject.referenceType().name(), "CGLIB")) {
            match = true;
          }
        }
        if (match) {
          List<Value> argumentValues = stackFrame.getArgumentValues();
          int size = argumentValues.size();
          if (size >= 3) {
            Value proxyValue = argumentValues.get(size - 3);
            if (proxyValue != null) {
              Type proxyType = proxyValue.type();
              if (proxyType instanceof ReferenceType &&
                  DebuggerUtilsEx.isAssignableFrom(myDeclaringClassName.getName(process), proxyType)) {
                Value methodValue = argumentValues.get(size - 2);
                if (methodValue instanceof ObjectReference) {
                  // TODO: no signature check for now
                  ReferenceType methodType = ((ObjectReference)methodValue).referenceType();
                  return myTargetMethodName.equals(
                    ((StringReference)((ObjectReference)methodValue).getValue(methodType.fieldByName("name"))).value());
                }
              }
            }
          }
        }
      }
    }
    catch (EvaluateException e) {
      LOG.info(e);
    }
    return false;
  }
private boolean isProxyCall(DebugProcessImpl process, Method method, @Nullable StackFrameProxyImpl stackFrame)