@Override
  public void createRequest(DebugProcessImpl debugProcess) {
    DebuggerManagerThreadImpl.assertIsManagerThread();
    if (!shouldCreateRequest(debugProcess)) {
      return;
    }
    if (isEmulated()) {
      debugProcess.getRequestsManager().callbackOnPrepareClasses(this, getClassPattern());

      Pattern pattern = PatternUtil.fromMask(getClassPattern());
      debugProcess.getVirtualMachineProxy().allClasses().stream()
        .filter(c -> pattern.matcher(c.name()).matches())
        .filter(ReferenceType::isPrepared)
        .forEach(aList -> processClassPrepare(debugProcess, aList));
    }
    else {
      try {
        RequestManagerImpl requestManager = debugProcess.getRequestsManager();
        if (isWatchEntry()) {
          MethodEntryRequest entryRequest = MethodBreakpoint.findRequest(debugProcess, MethodEntryRequest.class, this);
          if (entryRequest == null) {
            entryRequest = requestManager.createMethodEntryRequest(this);
          }
          else {
            entryRequest.disable();
          }
          entryRequest.addClassFilter(getClassPattern());
          debugProcess.getRequestsManager().enableRequest(entryRequest);
        }
        if (isWatchExit()) {
          MethodExitRequest exitRequest = MethodBreakpoint.findRequest(debugProcess, MethodExitRequest.class, this);
          if (exitRequest == null) {
            exitRequest = requestManager.createMethodExitRequest(this);
          }
          else {
            exitRequest.disable();
          }
          exitRequest.addClassFilter(getClassPattern());
          debugProcess.getRequestsManager().enableRequest(exitRequest);
        }
      }
      catch (Exception e) {
        LOG.debug(e);
      }
    }
  }
@Override
  public void createRequest(DebugProcessImpl debugProcess)