public Map<String, HotSwapFile> scanForModifiedClasses(@NotNull DebuggerSession session,
                                                         @Nullable NotNullLazyValue<? extends List<String>> outputPaths,
                                                         @NotNull HotSwapProgress progress) {
    DebuggerManagerThreadImpl.assertIsManagerThread();

    final long timeStamp = getTimeStamp(session);
    final Map<String, HotSwapFile> modifiedClasses = new HashMap<>();

    List<String> paths = outputPaths != null ? outputPaths.getValue() :
                         ReadAction.compute(() -> ContainerUtil.mapNotNull(
                           OrderEnumerator.orderEntries(session.getProject()).classes().getRoots(),
                           o -> o.isDirectory() && !o.getFileSystem().isReadOnly() ? o.getPath() : null
                         ));
    for (String path : paths) {
      String rootPath = FileUtil.toCanonicalPath(path);
      collectModifiedClasses(new File(path), rootPath, rootPath.length() + 1, modifiedClasses, progress, timeStamp);
    }

    return modifiedClasses;
  }
public Map<String, HotSwapFile> scanForModifiedClasses(@NotNull DebuggerSession session,
                                                         @Nullable NotNullLazyValue<? extends List<String>> outputPaths,
                                                         @NotNull HotSwapProgress progress)