code: private Iterator<Processor> handleServiceLoaderUnavailability(String key, Exception e) {
          if (fileManager instanceof JavacFileManager) {
              StandardJavaFileManager standardFileManager = (JavacFileManager) fileManager;
              Iterable<? extends Path> workingPath = fileManager.hasLocation(ANNOTATION_PROCESSOR_PATH)
                  ? standardFileManager.getLocationAsPaths(ANNOTATION_PROCESSOR_PATH)
                  : standardFileManager.getLocationAsPaths(CLASS_PATH);
  
              if (needClassLoader(options.get(Option.PROCESSOR), workingPath) )
                  handleException(key, e);
  
          } else {
              handleException(key, e);
          }
  
          java.util.List<Processor> pl = Collections.emptyList();
          return pl.iterator();
      }
docs: Returns an empty processor iterator if no processors are on the
  relevant path, otherwise if processors are present, logs an
  error.  Called when a service loader is unavailable for some
  reason, either because a service loader class cannot be found
  or because a security policy prevents class loaders from being
  created.
  
  @param key The resource key to use to log an error message
  @param e   If non-null, pass this exception to Abort