--- 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();