Peter Jones wrote:
The other option that I can think of is that PreferredClassLoader was trying to be careful to only consider 4xx HTTP responses to indicate that the JAR file definitely does not exist, not 5xx HTTP responses, which are logically less definitive, but still cause FileNotFoundException. This seems like a plausibile explanation, but it doesn't ring a bell with me (Bob?).
The only difference I can find is that PreferredClassLoader treats 403 (FORBIDDEN) as definitely does not exist, whereas HttpURLConnection throws an IOException for it. Doesn't seem like we would have really gone to that much trouble for that one case, though. - Bob
