JDK-8064924 changed the way protocol handlers are being discovered. Protocol handlers are now being looked up using service loader. It is not appropriate to use service loader to look for 'jar' handlers, as services are typically deployed as jar files. The following changes were accidentially omitted from the original changes for JDK-8064924.
diff --git a/src/java.base/share/classes/java/net/URL.java b/src/java.base/share/classes/java/net/URL.java
--- a/src/java.base/share/classes/java/net/URL.java
+++ b/src/java.base/share/classes/java/net/URL.java
@@ -1248,7 +1248,7 @@
checkedWithFactory = true;
}
- if (handler == null) {
+ if (handler == null && !protocol.equalsIgnoreCase("jar")) {
handler = lookupViaProviders(protocol);
}
}