< prev index next >

src/java.base/share/classes/jdk/internal/reflect/Reflection.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -120,13 +120,10 @@
     public static boolean verifyMemberAccess(Class<?> currentClass,
                                              Class<?> memberClass,
                                              Class<?> targetClass,
                                              int modifiers)
     {
-        Objects.requireNonNull(currentClass);
-        Objects.requireNonNull(memberClass);
-
         if (currentClass == memberClass) {
             // Always succeeds
             return true;
         }
 

@@ -202,26 +199,10 @@
         }
 
         return true;
     }
 
-    /*
-     * Verify if a member is public and memberClass is a public type
-     * in a package that is unconditionally exported and
-     * return {@code true}if it is granted.
-     *
-     * @param memberClass the declaring class of the member being accessed
-     * @param modifiers the member's access modifiers
-     * @return {@code true} if the member is public and in a publicly accessible type
-     */
-    public static boolean verifyPublicMemberAccess(Class<?> memberClass, int modifiers) {
-        Module m = memberClass.getModule();
-        return Modifier.isPublic(modifiers)
-            && m.isExported(memberClass.getPackageName())
-            && Modifier.isPublic(Reflection.getClassAccessFlags(memberClass));
-    }
-
     /**
      * Returns {@code true} if memberClass's module exports memberClass's
      * package to currentModule.
      */
     public static boolean verifyModuleAccess(Module currentModule, Class<?> memberClass) {

@@ -342,14 +323,12 @@
      */
     public static IllegalAccessException newIllegalAccessException(Class<?> currentClass,
                                                                    Class<?> memberClass,
                                                                    Class<?> targetClass,
                                                                    int modifiers)
+        throws IllegalAccessException
     {
-        if (currentClass == null)
-            return newIllegalAccessException(memberClass, modifiers);
-
         String currentSuffix = "";
         String memberSuffix = "";
         Module m1 = currentClass.getModule();
         if (m1.isNamed())
             currentSuffix = " (in " + m1 + ")";

@@ -374,40 +353,10 @@
         }
 
         return new IllegalAccessException(msg);
     }
 
-    /**
-     * Returns an IllegalAccessException with an exception message where
-     * there is no caller frame.
-     */
-    private static IllegalAccessException newIllegalAccessException(Class<?> memberClass,
-                                                                    int modifiers)
-    {
-        String memberSuffix = "";
-        Module m2 = memberClass.getModule();
-        if (m2.isNamed())
-            memberSuffix = " (in " + m2 + ")";
-
-        String memberPackageName = memberClass.getPackageName();
-
-        String msg = "JNI attached native thread (null caller frame) cannot access ";
-        if (m2.isExported(memberPackageName)) {
-
-            // module access okay so include the modifiers in the message
-            msg += "a member of " + memberClass + memberSuffix +
-                " with modifiers \"" + Modifier.toString(modifiers) + "\"";
-
-        } else {
-            // module access failed
-            msg += memberClass + memberSuffix+ " because "
-                + m2 + " does not export " + memberPackageName;
-        }
-
-        return new IllegalAccessException(msg);
-    }
-
     /**
      * Returns true if {@code currentClass} and {@code memberClass}
      * are nestmates - that is, if they have the same nesthost as
      * determined by the VM.
      */
< prev index next >