docs: private Set<String> readAparCsvFromExtractedInstall(File installLocation) throws ZipException, IOException {
          // Extracted, means we can open up the zip containing the APAR CSV file
          // and get the entry for it
          File fixesFolder = new File(installLocation, APAR_FIX_PACK_ZIP_LOCATION);
          final Pattern pattern = Pattern.compile(APAR_FIX_PACK_ZIP_FILENAME_PATTERN);
          // Find all of the FP folder using the regext
          File[] fixPackZips = fixesFolder.listFiles(new FilenameFilter() {
  
              @Override
              public boolean accept(File arg0, String filename) {
                  return pattern.matcher(filename).matches();
              }
          });
  
          Set<String> aparIds = new HashSet<String>();
          for (File aparFile : fixPackZips) {
              ZipFile aparZipFile = null;
              try {
                  aparZipFile = new ZipFile(aparFile);
                  ZipEntry aparCsvEntry = aparZipFile.getEntry(APAR_CSV_ENTRY_NAME);
  
                  // Null is invalid, if the zip file exists then it should contain
                  // this file
                  if (aparCsvEntry == null) {
                      throw new IllegalArgumentException(getMessage("compare.no.csv.entry", installLocation.getAbsolutePath(), aparFile.getName(), APAR_CSV_ENTRY_NAME));
                  }
  
                  // Read the CSV
                  InputStream csvInputStream = aparZipFile.getInputStream(aparCsvEntry);
                  String aparCsv = readLine(csvInputStream);
                  aparIds.addAll(convertCsvToSet(aparCsv));
              } finally {
                  if (aparZipFile != null) {
                      aparZipFile.close();
                  }
              }
          }
          return aparIds;
      }