synchronized void addFile(@NotNull Path file) {
    for (Path existingFile : files) {
      if (existingFile.equals(file)) {
        return;
      }
    }

    Path[] result = Arrays.copyOf(files, files.length + 1);
    result[result.length - 1] = file;
    files = result;
    allUrlsWereProcessed = false;
  }
synchronized void addFile(@NotNull Path file)