code: private void listContainer(File container,
                                 RelativeDirectory subdirectory,
                                 Set<JavaFileObject.Kind> fileKinds,
                                 boolean recurse,
                                 ListBuffer<JavaFileObject> resultList) {
          Archive archive = archives.get(container);
          if (archive == null) {
              // archives are not created for directories.
              if  (fsInfo.isDirectory(container)) {
                  listDirectory(container,
                                subdirectory,
                                fileKinds,
                                recurse,
                                resultList);
                  return;
              }
  
              // Not a directory; either a file or non-existant, create the archive
              try {
                  archive = openArchive(container);
              } catch (IOException ex) {
                  log.error("error.reading.file",
                            container, getMessage(ex));
                  return;
              }
          }
          listArchive(archive,
                      subdirectory,
                      fileKinds,
                      recurse,
                      resultList);
      }
docs: container is a directory, a zip file, or a non-existant path.
  Insert all files in subdirectory subdirectory of container which
  match fileKinds into resultList