private boolean checkContextIsFromImplicitThread(@NotNull SuspendContextImpl eventContext) {
    DebugProcess debugProcess = eventContext.getDebugProcess();
    LightOrRealThreadInfo implicitThread = DebuggerImplicitEvaluationContextUtil.getImplicitEvaluationThread(debugProcess);
    LightOrRealThreadInfo filterThread = getRequestsManager().getFilterThread();
    ThreadReferenceProxy eventThread = eventContext.getThread();

    if (implicitThread == null || eventThread == null) {
      return false;
    }

    // Case 1: We have filter and implicit threads provided, they are different, hence, this skipped breakpoint is no use for the user
    if (filterThread != null && !implicitThread.checkSameThread(eventThread.getThreadReference(), eventContext)) {
      return true;
    }

    // Case 2: Implicit thread is provided, no filter thread, check correct hit
    return implicitThread.checkSameThread(eventThread.getThreadReference(), eventContext);
  }
private boolean checkContextIsFromImplicitThread(@NotNull SuspendContextImpl eventContext)