From 87421dfd84a6c481bfcce504657579e836eee84e Mon Sep 17 00:00:00 2001 From: mchung Date: Mon, 15 Jul 2013 20:24:39 -0700 Subject: [PATCH] 8017291: Cast Proxies Aside Reviewed-by: alanb, ahgross --- src/share/classes/java/lang/ClassLoader.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/share/classes/java/lang/ClassLoader.java b/src/share/classes/java/lang/ClassLoader.java index f26eafd98..3735cd3a7 100644 --- a/src/share/classes/java/lang/ClassLoader.java +++ b/src/share/classes/java/lang/ClassLoader.java @@ -57,6 +57,7 @@ import sun.misc.URLClassPath; import sun.misc.VM; import sun.reflect.CallerSensitive; import sun.reflect.Reflection; +import sun.reflect.misc.ReflectUtil; import sun.security.util.SecurityConstants; /** @@ -486,6 +487,13 @@ public abstract class ClassLoader { private void checkPackageAccess(Class cls, ProtectionDomain pd) { final SecurityManager sm = System.getSecurityManager(); if (sm != null) { + if (ReflectUtil.isNonPublicProxyClass(cls)) { + for (Class intf: cls.getInterfaces()) { + checkPackageAccess(intf, pd); + } + return; + } + final String name = cls.getName(); final int i = name.lastIndexOf('.'); if (i != -1) { -- GitLab