@Override
  public void reloadChangedClasses(@NotNull DebuggerSession session,
                                   boolean compileBeforeHotswap,
                                   @Nullable HotSwapStatusListener callback) {
    dontAskHotswapAfterThisCompilation();
    if (compileBeforeHotswap) {
      Project project = session.getProject();
      ProjectTaskManagerImpl.putBuildOriginator(project, this.getClass());
      ProjectTaskManager projectTaskManager = ProjectTaskManager.getInstance(project);
      if (callback == null) {
        projectTaskManager.buildAllModules();
      }
      else {
        ProjectTask buildProjectTask = projectTaskManager.createAllModulesBuildTask(true, project);
        ProjectTaskContext context = new ProjectTaskContext(callback).withUserData(HOT_SWAP_CALLBACK_KEY, callback);
        projectTaskManager.run(context, buildProjectTask);
      }
    }
    else {
      if (session.isAttached()) {
        hotSwapSessions(Collections.singletonList(session), null, null, callback);
      }
      else if (callback != null) {
        callback.onFailure(List.of(session));
      }
    }
  }
@Override
  public void reloadChangedClasses(@NotNull DebuggerSession session,
                                   boolean compileBeforeHotswap,
                                   @Nullable HotSwapStatusListener callback)