private synchronized ProviderLoader rescanForItem(final ProviderIdent ident) throws ProviderLoaderException {
        File candidate = null;
        PluginScanner cscanner = null;
        for (final PluginScanner scanner : getScanners()) {
            final File file = scanner.scanForFile(ident);
            if (null != file) {
                if (null != candidate) {
                    throw new ProviderLoaderException(
                            "More than one plugin file matched: " + file + ", and " + candidate,
                            ident.getService(), ident.getProviderName()
                    );
                }
                candidate = file;
                cscanner = scanner;
            }
        }
        if (null != candidate) {
            final cacheItem cacheItem = new cacheItem(candidate, cscanner);
            cache.put(ident, cacheItem);
            return loadFileProvider(cacheItem);
        }
        return null;
    }
private synchronized ProviderLoader rescanForItem ( final ProviderIdent ident ) throws ProviderLoaderException { File candidate = null ; PluginScanner cscanner = null ; for ( final PluginScanner scanner : getScanners ( ) ) { final File file = scanner . scanForFile ( ident ) ; if ( null != file ) { if ( null != candidate ) { throw new ProviderLoaderException ( "More than one plugin file matched: " + file + ", and " + candidate , ident . getService ( ) , ident . getProviderName ( ) ) ; } candidate = file ; cscanner = scanner ; } } if ( null != candidate ) { final cacheItem cacheItem = new cacheItem ( candidate , cscanner ) ; cache . put ( ident , cacheItem ) ; return loadFileProvider ( cacheItem ) ; } return null ; }
Rescan for the ident and cache and return the loader