changeset 17016:8cba9cc074b8

8178726: Can't load classes from classpath if it is a UNC share Reviewed-by: alanb, weijun, chegar
author simonis
date Wed, 19 Apr 2017 14:17:46 +0200
parents c2556da831ef
children d046e0ed0287
files src/java.base/share/classes/jdk/internal/loader/ClassLoaders.java
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/java.base/share/classes/jdk/internal/loader/ClassLoaders.java	Wed Apr 19 13:38:28 2017 +0200
+++ b/src/java.base/share/classes/jdk/internal/loader/ClassLoaders.java	Wed Apr 19 14:17:46 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2017, 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
@@ -256,7 +256,10 @@
      */
     private static URL toFileURL(String s) {
         try {
-            return Paths.get(s).toRealPath().toUri().toURL();
+            // Use an intermediate File object to construct a URI/URL without
+            // authority component as URLClassPath can't handle URLs with a UNC
+            // server name in the authority component.
+            return Paths.get(s).toRealPath().toFile().toURI().toURL();
         } catch (InvalidPathException | IOException ignore) {
             // malformed path string or class path element does not exist
             return null;