jdk/src/java.base/share/classes/java/lang/reflect/Method.java
changeset 36511 9d0388c6b336
parent 32834 e1dca5fe4de3
child 37363 329dba26ffd2
--- 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) {