jdk/src/java.base/share/classes/jdk/internal/module/Modules.java
changeset 45652 33342314ce89
parent 45004 ea3137042a61
--- a/jdk/src/java.base/share/classes/jdk/internal/module/Modules.java	Thu Jun 15 17:24:12 2017 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/module/Modules.java	Fri Jun 16 09:20:39 2017 -0700
@@ -136,10 +136,12 @@
     public static void addProvides(Module m, Class<?> service, Class<?> impl) {
         ModuleLayer layer = m.getLayer();
 
-        if (layer == null || layer == ModuleLayer.boot()) {
+        PrivilegedAction<ClassLoader> pa = m::getClassLoader;
+        ClassLoader loader = AccessController.doPrivileged(pa);
+
+        ClassLoader platformClassLoader = ClassLoaders.platformClassLoader();
+        if (layer == null || loader == null || loader == platformClassLoader) {
             // update ClassLoader catalog
-            PrivilegedAction<ClassLoader> pa = m::getClassLoader;
-            ClassLoader loader = AccessController.doPrivileged(pa);
             ServicesCatalog catalog;
             if (loader == null) {
                 catalog = BootLoader.getServicesCatalog();