private void checkAccess(Object receiver, boolean setter) throws IllegalAccessException { if (!flag) { int mod = getModifiers(); if (setter && (mod & Modifier.FINAL) > 0) { throw new IllegalAccessException("Cannot set final field"); } // Check access if (!checkAccessibleFast(this)) { Class<?> caller = VM.getStackClasses(1, 1)[0]; if (!checkAccessible(caller, this)) { throw new IllegalAccessException(String.format( "Attempt to access field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } if ((getModifiers() & Modifier.PROTECTED) > 0) { boolean isInstance = caller.isInstance(receiver); boolean samePackage = isSamePackage(getDeclaringClass(), caller); if (!isInstance && !samePackage) { throw new IllegalAccessException(String.format( "Attempt to access protected field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } } } } }
private void checkAccess(Object receiver, boolean setter) throws IllegalAccessException { if (!flag) { int mod = getModifiers(); if (setter && (mod & Modifier.FINAL) > 0) { throw new IllegalAccessException("Cannot set final field"); } // Check access if (!checkAccessibleFast(this)) { Class<?> caller = VM.getStackClasses(1, 1)[0]; if (!checkAccessible(caller, this)) { throw new IllegalAccessException(String.format( "Attempt to access field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } if ((getModifiers() & Modifier.PROTECTED) > 0) { boolean isInstance = caller.isInstance(receiver); boolean samePackage = isSamePackage(getDeclaringClass(), caller); if (!isInstance && !samePackage) { throw new IllegalAccessException(String.format( "Attempt to access protected field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } } } } }
private void checkAccess(Object receiver, boolean setter) throws IllegalAccessException { if (!flag) { int mod = getModifiers(); if (setter && (mod & Modifier.FINAL) > 0) { throw new IllegalAccessException("Cannot set final field"); } // Check access if (!checkAccessibleFast(this)) { Class<?> caller = VM.getStackClasses(1, 1)[0]; if (!checkAccessible(caller, this)) { throw new IllegalAccessException(String.format( "Attempt to access field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } if ((getModifiers() & Modifier.PROTECTED) > 0) { boolean isInstance = caller.isInstance(receiver); boolean samePackage = isSamePackage(getDeclaringClass(), caller); if (!isInstance && !samePackage) { throw new IllegalAccessException(String.format( "Attempt to access protected field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } } } } }
private void checkAccess(Object receiver, boolean setter) throws IllegalAccessException { if (!flag) { int mod = getModifiers(); if (setter && (mod & Modifier.FINAL) > 0) { throw new IllegalAccessException("Cannot set final field"); } // Check access if (!checkAccessibleFast(this)) { Class<?> caller = VM.getStackClasses(1, 1)[0]; if (!checkAccessible(caller, this)) { throw new IllegalAccessException(String.format( "Attempt to access field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } if ((getModifiers() & Modifier.PROTECTED) > 0) { boolean isInstance = caller.isInstance(receiver); boolean samePackage = isSamePackage(getDeclaringClass(), caller); if (!isInstance && !samePackage) { throw new IllegalAccessException(String.format( "Attempt to access protected field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } } } } }
private void checkAccess(Object receiver, boolean setter) throws IllegalAccessException { if (!flag) { int mod = getModifiers(); if (setter && (mod & Modifier.FINAL) > 0) { throw new IllegalAccessException("Cannot set final field"); } // Check access if (!checkAccessibleFast(this)) { Class<?> caller = VM.getStackClasses(1, 1)[0]; if (!checkAccessible(caller, this)) { throw new IllegalAccessException(String.format( "Attempt to access field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } if ((getModifiers() & Modifier.PROTECTED) > 0) { boolean isInstance = caller.isInstance(receiver); boolean samePackage = isSamePackage(getDeclaringClass(), caller); if (!isInstance && !samePackage) { throw new IllegalAccessException(String.format( "Attempt to access protected field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } } } } }
private void checkAccess(Object receiver, boolean setter) throws IllegalAccessException { if (!flag) { int mod = getModifiers(); if (setter && (mod & Modifier.FINAL) > 0) { throw new IllegalAccessException("Cannot set final field"); } // Check access if (!checkAccessibleFast(this)) { Class<?> caller = VM.getStackClasses(1, 1)[0]; if (!checkAccessible(caller, this)) { throw new IllegalAccessException(String.format( "Attempt to access field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } if ((getModifiers() & Modifier.PROTECTED) > 0) { boolean isInstance = caller.isInstance(receiver); boolean samePackage = isSamePackage(getDeclaringClass(), caller); if (!isInstance && !samePackage) { throw new IllegalAccessException(String.format( "Attempt to access protected field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } } } } }
private void checkAccess(Object receiver, boolean setter) throws IllegalAccessException { if (!flag) { int mod = getModifiers(); if (setter && (mod & Modifier.FINAL) > 0) { throw new IllegalAccessException("Cannot set final field"); } // Check access if (!checkAccessibleFast(this)) { Class<?> caller = VM.getStackClasses(1, 1)[0]; if (!checkAccessible(caller, this)) { throw new IllegalAccessException(String.format( "Attempt to access field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } if ((getModifiers() & Modifier.PROTECTED) > 0) { boolean isInstance = caller.isInstance(receiver); boolean samePackage = isSamePackage(getDeclaringClass(), caller); if (!isInstance && !samePackage) { throw new IllegalAccessException(String.format( "Attempt to access protected field %s.%s from class %s", getDeclaringClass().getName(), getName(), caller.getName())); } } } } }