8055314: Update refactoring for new loader
authormchung
Fri, 29 Aug 2014 20:16:35 -0700
changeset 28544 a132e8e301e5
parent 28543 31afdc0e77af
child 28545 1628787df68a
8055314: Update refactoring for new loader Reviewed-by: mullan, ahgross, igerasim
jdk/src/java.base/share/classes/java/lang/ClassLoader.java
--- 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) {