--- a/jdk/src/share/classes/java/lang/Package.java Wed Apr 17 10:15:33 2013 +0800
+++ b/jdk/src/share/classes/java/lang/Package.java Tue Apr 16 21:39:52 2013 -0700
@@ -49,6 +49,8 @@
import java.util.Iterator;
import sun.net.www.ParseUtil;
+import sun.reflect.CallerSensitive;
+import sun.reflect.Reflection;
import java.lang.annotation.Annotation;
@@ -273,8 +275,9 @@
* @return the package of the requested name. It may be null if no package
* information is available from the archive or codebase.
*/
+ @CallerSensitive
public static Package getPackage(String name) {
- ClassLoader l = ClassLoader.getCallerClassLoader();
+ ClassLoader l = ClassLoader.getClassLoader(Reflection.getCallerClass());
if (l != null) {
return l.getPackage(name);
} else {
@@ -294,8 +297,9 @@
* @return a new array of packages known to the callers {@code ClassLoader}
* instance. An zero length array is returned if none are known.
*/
+ @CallerSensitive
public static Package[] getPackages() {
- ClassLoader l = ClassLoader.getCallerClassLoader();
+ ClassLoader l = ClassLoader.getClassLoader(Reflection.getCallerClass());
if (l != null) {
return l.getPackages();
} else {