--- a/src/java.base/share/classes/java/net/URL.java Thu May 02 14:21:06 2019 -0700
+++ b/src/java.base/share/classes/java/net/URL.java Thu May 02 22:52:51 2019 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1403,8 +1403,9 @@
URLStreamHandlerFactory fac;
boolean checkedWithFactory = false;
+ boolean overrideableProtocol = isOverrideable(protocol);
- if (isOverrideable(protocol) && jdk.internal.misc.VM.isBooted()) {
+ if (overrideableProtocol && jdk.internal.misc.VM.isBooted()) {
// Use the factory (if any). Volatile read makes
// URLStreamHandlerFactory appear fully initialized to current thread.
fac = factory;
@@ -1440,7 +1441,8 @@
// Check with factory if another thread set a
// factory since our last check
- if (!checkedWithFactory && (fac = factory) != null) {
+ if (overrideableProtocol && !checkedWithFactory &&
+ (fac = factory) != null) {
handler2 = fac.createURLStreamHandler(protocol);
}