src/share/classes/sun/invoke/util/VerifyAccess.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File jdk Cdiff src/share/classes/sun/invoke/util/VerifyAccess.java

src/share/classes/sun/invoke/util/VerifyAccess.java

Print this page

        

*** 116,126 **** case PROTECTED: if ((allowedModes & PROTECTED_OR_PACKAGE_ALLOWED) != 0 && isSamePackage(defc, lookupClass)) return true; if ((allowedModes & PROTECTED) != 0 && ! isPublicSuperClass(defc, lookupClass)) return true; return false; case PACKAGE_ONLY: // That is, zero. Unmarked member is package-only access. return ((allowedModes & PACKAGE_ALLOWED) != 0 && isSamePackage(defc, lookupClass)); --- 116,126 ---- case PROTECTED: if ((allowedModes & PROTECTED_OR_PACKAGE_ALLOWED) != 0 && isSamePackage(defc, lookupClass)) return true; if ((allowedModes & PROTECTED) != 0 && ! isSuperClass(defc, lookupClass)) return true; return false; case PACKAGE_ONLY: // That is, zero. Unmarked member is package-only access. return ((allowedModes & PACKAGE_ALLOWED) != 0 && isSamePackage(defc, lookupClass));
*** 138,149 **** return (refc == lookupClass || refc.isAssignableFrom(lookupClass) || lookupClass.isAssignableFrom(refc)); } ! static boolean isPublicSuperClass(Class<?> defc, Class<?> lookupClass) { ! return isPublic(getClassModifiers(defc)) && defc.isAssignableFrom(lookupClass); } static int getClassModifiers(Class<?> c) { // This would return the mask stored by javac for the source-level modifiers. // return c.getModifiers(); --- 138,149 ---- return (refc == lookupClass || refc.isAssignableFrom(lookupClass) || lookupClass.isAssignableFrom(refc)); } ! static boolean isSuperClass(Class<?> defc, Class<?> lookupClass) { ! return defc.isAssignableFrom(lookupClass); } static int getClassModifiers(Class<?> c) { // This would return the mask stored by javac for the source-level modifiers. // return c.getModifiers();
src/share/classes/sun/invoke/util/VerifyAccess.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File