--- a/jdk/src/java.base/share/classes/java/lang/reflect/Method.java Tue Mar 15 13:48:26 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Method.java Thu Mar 17 19:04:16 2016 +0000
@@ -176,6 +176,19 @@
return res;
}
+ @Override
+ @CallerSensitive
+ public void setAccessible(boolean flag) {
+ AccessibleObject.checkPermission();
+ if (flag) checkCanSetAccessible(Reflection.getCallerClass());
+ setAccessible0(flag);
+ }
+
+ @Override
+ void checkCanSetAccessible(Class<?> caller) {
+ checkCanSetAccessible(caller, clazz);
+ }
+
/**
* Used by Excecutable for annotation sharing.
*/
@@ -508,10 +521,8 @@
InvocationTargetException
{
if (!override) {
- if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) {
- Class<?> caller = Reflection.getCallerClass();
- checkAccess(caller, clazz, obj, modifiers);
- }
+ Class<?> caller = Reflection.getCallerClass();
+ checkAccess(caller, clazz, obj, modifiers);
}
MethodAccessor ma = methodAccessor; // read volatile
if (ma == null) {