public void visit()

in nuget-common/src/jetbrains/buildServer/nuget/common/index/NuGetPackageStructureVisitor.java [34:63]


  public void visit(@NotNull InputStream stream) {
    if(myAnalysers.isEmpty()) return;
    ZipSlipAwareZipInputStream zipInputStream = null;
    try {
      zipInputStream = new ZipSlipAwareZipInputStream(new BufferedInputStream(stream));
      ZipEntry zipEntry;
      while ((zipEntry = zipInputStream.getNextEntry()) != null) {
        if(zipEntry.isDirectory()) continue;
        final String zipEntryName = zipEntry.getName();
        for(NuGetPackageStructureAnalyser analyser : myAnalysers){
          analyser.analyseEntry(zipEntryName);
        }
        if (zipEntryName.endsWith(FeedConstants.NUSPEC_FILE_EXTENSION)) {
          LOG.debug(String.format("Nuspec file found on path %s in NuGet package", zipEntryName));
          final NuspecFileContent nuspecContent = readNuspecFileContent(zipInputStream);
          if (nuspecContent == null)
            LOG.warn("Failed to read .nuspec file content from NuGet package");
          else {
            for(NuGetPackageStructureAnalyser analyser : myAnalysers){
              analyser.analyseNuspecFile(nuspecContent);
            }
          }
          zipInputStream.closeEntry();
        }
      }
    } catch (IOException e) {
      LOG.warn("Failed to read content of NuGet package");
      FileUtil.close(zipInputStream);
    }
  }