src/share/classes/java/lang/Class.java

Print this page

        

*** 603,613 **** if (cl == null) return null; SecurityManager sm = System.getSecurityManager(); if (sm != null) { ClassLoader ccl = ClassLoader.getCallerClassLoader(); ! if (ccl != null && ccl != cl && !cl.isAncestor(ccl)) { sm.checkPermission(SecurityConstants.GET_CLASSLOADER_PERMISSION); } } return cl; } --- 603,613 ---- if (cl == null) return null; SecurityManager sm = System.getSecurityManager(); if (sm != null) { ClassLoader ccl = ClassLoader.getCallerClassLoader(); ! if (ClassLoader.needsClassLoaderPermissionCheck(ccl, cl)) { sm.checkPermission(SecurityConstants.GET_CLASSLOADER_PERMISSION); } } return cl; }
*** 2168,2179 **** private void checkMemberAccess(int which, ClassLoader ccl) { SecurityManager s = System.getSecurityManager(); if (s != null) { s.checkMemberAccess(this, which); ClassLoader cl = getClassLoader0(); ! if ((ccl != null) && (ccl != cl) && ! ((cl == null) || !cl.isAncestor(ccl))) { String name = this.getName(); int i = name.lastIndexOf('.'); if (i != -1) { s.checkPackageAccess(name.substring(0, i)); } --- 2168,2178 ---- private void checkMemberAccess(int which, ClassLoader ccl) { SecurityManager s = System.getSecurityManager(); if (s != null) { s.checkMemberAccess(this, which); ClassLoader cl = getClassLoader0(); ! if (sun.reflect.misc.ReflectUtil.needsPackageAccessCheck(ccl, cl)) { String name = this.getName(); int i = name.lastIndexOf('.'); if (i != -1) { s.checkPackageAccess(name.substring(0, i)); }