private static void reportMissingCompiledRootArtifacts(@NotNull CompileContext context,
                                                         @NotNull String libraryName,
                                                         @NotNull JpsMavenRepositoryLibraryDescriptor descriptor,
                                                         @NotNull List<Path> allRoots,
                                                         @NotNull List<Path> missingRoots) {
    if (missingRoots.isEmpty() || !SystemProperties.getBooleanProperty(RESOLUTION_REPORT_INVALID_SHA256_CHECKSUM_PROPERTY, false)) {
      return;
    }

    Path reportsDir = createVerificationProblemReport(context, libraryName, descriptor, "missing_artifact", reportMetadata -> {
      reportMetadata.setProperty("all_roots_list", allRoots.toString());
      reportMetadata.setProperty("missing_roots_list", missingRoots.toString());
    });
    if (reportsDir == null) {
      return;
    }

    // publish .pom files to investigate why some files are not downloaded
    for (Path artifact : allRoots) {
      String possiblePomFileName = FileUtilRt.getNameWithoutExtension(artifact.getFileName().toString()) + ".pom";
      Path pomFile = artifact.getParent().resolve(possiblePomFileName);

      if (Files.exists(pomFile)) {
        try {
          Path pomFileCopy = reportsDir.resolve(pomFile.getFileName());
          Files.copy(pomFile, pomFileCopy, StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES);
        }
        catch (IOException e) {
          LOG.error("Unable to copy pom file " + pomFile, e);
        }
      }
    }
  }
private static void reportMissingCompiledRootArtifacts(@NotNull CompileContext context,
                                                         @NotNull String libraryName,
                                                         @NotNull JpsMavenRepositoryLibraryDescriptor descriptor,
                                                         @NotNull List<Path> allRoots,
                                                         @NotNull List<Path> missingRoots)