private void collectMissingFiles() throws ProjectBuildException, IOException {
      context.checkCanceled();

      final ProjectDescriptor pd = context.getProjectDescriptor();
      for (ArtifactRootDescriptor descriptor : pd.getBuildRootIndex().getTargetRoots(target, context)) {
        DestinationInfo destination = descriptor.getDestinationInfo();
        if (destination instanceof ExplodedDestinationInfo) {
          ExplodedDestinationInfo explodedDestinationInfo = ((ExplodedDestinationInfo)destination);
          if (!new File(explodedDestinationInfo.getOutputFilePath()).exists()) {
            String outputPath = explodedDestinationInfo.getOutputFilePath();
            final List<ArtifactOutputToSourceMapping.SourcePathAndRootIndex> sources = outSrcMapping.getState(outputPath);
            if (sources != null) {
              for (ArtifactOutputToSourceMapping.SourcePathAndRootIndex source : sources) {
                addFileToProcess(source.getRootIndex(), source.getPath(), List.of());
                outSrcMapping.remove(outputPath);
              }
            }
          }
        }
      }
    }
private void collectMissingFiles()