Fix art/test/005-annotation.
Proxies must be created in the default (empty) package.
Change-Id: Ifc48dd1c5e11e0ac4e6bcac0b44047044bfcef66
diff --git a/ojluni/src/main/java/java/lang/reflect/Proxy.java b/ojluni/src/main/java/java/lang/reflect/Proxy.java
index b9432c8..a429422 100755
--- a/ojluni/src/main/java/java/lang/reflect/Proxy.java
+++ b/ojluni/src/main/java/java/lang/reflect/Proxy.java
@@ -599,8 +599,8 @@
}
if (proxyPkg == null) {
- // if no non-public proxy interfaces, use com.sun.proxy package
- proxyPkg = ReflectUtil.PROXY_PACKAGE + ".";
+ // if no non-public proxy interfaces, use the default package.
+ proxyPkg = "";
}
{
diff --git a/ojluni/src/main/java/sun/reflect/misc/ReflectUtil.java b/ojluni/src/main/java/sun/reflect/misc/ReflectUtil.java
index bf2c12e..5b39276 100755
--- a/ojluni/src/main/java/sun/reflect/misc/ReflectUtil.java
+++ b/ojluni/src/main/java/sun/reflect/misc/ReflectUtil.java
@@ -176,8 +176,6 @@
}
}
- public static final String PROXY_PACKAGE = "com.sun.proxy";
-
/**
* Test if the given class is a proxy class that implements
* non-public interface. Such proxy class may be in a non-restricted
@@ -187,6 +185,10 @@
String name = cls.getName();
int i = name.lastIndexOf('.');
String pkg = (i != -1) ? name.substring(0, i) : "";
- return Proxy.isProxyClass(cls) && !pkg.equals(PROXY_PACKAGE);
+
+ // NOTE: Android creates proxies in the "default" package (and not com.sun.proxy), which
+ // makes this check imprecise. However, this function is only ever called if there's
+ // a security manager installed (which is the never case on android).
+ return Proxy.isProxyClass(cls) && !pkg.isEmpty();
}
}