--- a/jdk/src/share/classes/java/io/ObjectStreamClass.java Mon Apr 22 10:55:14 2013 +0100
+++ b/jdk/src/share/classes/java/io/ObjectStreamClass.java Mon Apr 22 11:08:27 2013 +0100
@@ -49,6 +49,8 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import sun.misc.Unsafe;
+import sun.reflect.CallerSensitive;
+import sun.reflect.Reflection;
import sun.reflect.ReflectionFactory;
import sun.reflect.misc.ReflectUtil;
@@ -259,12 +261,13 @@
*
* @return the <code>Class</code> instance that this descriptor represents
*/
+ @CallerSensitive
public Class<?> forClass() {
if (cl == null) {
return null;
}
- ClassLoader ccl = ObjectStreamField.getCallerClassLoader();
- if (ReflectUtil.needsPackageAccessCheck(ccl, cl.getClassLoader())) {
+ Class<?> caller = Reflection.getCallerClass();
+ if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), cl.getClassLoader())) {
ReflectUtil.checkPackageAccess(cl);
}
return cl;