question: private Iterator < Processor > handleServiceLoaderUnavailability ( String key , Exception e ) { JavaFileManager fileManager = context . get ( JavaFileManager . class ) ; if ( fileManager instanceof JavacFileManager ) { StandardJavaFileManager standardFileManager = ( JavacFileManager ) fileManager ; Iterable < ? extends File > workingPath = fileManager . hasLocation ( ANNOTATION_PROCESSOR_PATH ) ? standardFileManager . getLocation ( ANNOTATION_PROCESSOR_PATH ) : standardFileManager . getLocation ( CLASS_PATH ) ; if ( needClassLoader ( options . get ( PROCESSOR ) , workingPath ) ) handleException ( key , e ) ; } else { handleException ( key , e ) ; } java . util . List < Processor > pl = Collections . emptyList ( ) ; return pl . iterator ( ) ; }
target:  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.