8055314: Update refactoring for new loader
Reviewed-by: mullan, ahgross, igerasim
--- a/jdk/src/java.base/share/classes/java/lang/ClassLoader.java Tue Aug 26 17:09:05 2014 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/ClassLoader.java Fri Aug 29 20:16:35 2014 -0700
@@ -1360,7 +1360,10 @@
return null;
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
- checkClassLoaderPermission(this, Reflection.getCallerClass());
+ // Check access to the parent class loader
+ // If the caller's class loader is same as this class loader,
+ // permission check is performed.
+ checkClassLoaderPermission(parent, Reflection.getCallerClass());
}
return parent;
}
@@ -1503,6 +1506,11 @@
return caller.getClassLoader0();
}
+ /*
+ * Checks RuntimePermission("getClassLoader") permission
+ * if caller's class loader is not null and caller's class loader
+ * is not the same as or an ancestor of the given cl argument.
+ */
static void checkClassLoaderPermission(ClassLoader cl, Class<?> caller) {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {