docs: 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;
      }