It turns out that attempts to access an http url can generate FileNotFoundExceptions if a requested entry in a jar file downloaded from the url can not be found. So if a jar is downloaded and the preferred class provider looks for the PREF_NAME entry in it, the provider needs to ignore a ClassNotFoundException that might arise from that search.