Source:
<code>public boolean isAccessible(Map context, Object target, Member member, String propertyName) { LOG.debug("Checking access for [target: {}, member: {}, property: {}]", target, member, propertyName); final int memberModifiers = member.getModifiers(); if (!checkPublicMemberAccess(memberModifiers)) { LOG.trace("Access to non-public is blocked!", member); return false; } final Class memberClass = member.getDeclaringClass(); Class targetClass = (target != null ? target.getClass() : memberClass); if (checkEnumAccess(target, member)) { LOG.trace("Allowing access to enum: target class of target [{}], member [{}]", targetClass, target, member); return true; } if (!checkStaticMethodAccess(member, memberModifiers)) { LOG.warn("Access to static method is blocked!", member); return false; } <START> if (isClassExcluded(memberClass)) { <END> LOG.warn("Declaring class of member type is excluded!", member); return false; } else { if (Modifier.isStatic(memberModifiers) && allowStaticMethodAccess) { LOG.trace("Support for accessing static methods [target: {}, targetClass: {}, member: {}, property: {}] is deprecated!", target, targetClass, member, propertyName); targetClass = memberClass; } } if (isPackageExcluded(targetClass.getPackage(), memberClass.getPackage())) { LOG.warn("Package of target class of target or package of member are excluded!", targetClass.getPackage(), targetClass, target, memberClass.getPackage(), member); return false; } if (isClassExcluded(targetClass)) { LOG.warn("Target class of target is excluded!", targetClass, target); return false; } if (disallowProxyMemberAccess && ProxyUtil.isProxyMember(member, target)) { LOG.warn("Access to proxy is blocked! Target class of target [{}], member [{}]", targetClass, target, member); return false; } return super.isAccessible(context, target, member, propertyName) && isAcceptableProperty(propertyName); }</code><technical_language>This check moved prior Class targetClass = (target != null ? target.getClass() : memberClass); - 2.6</technical_language>

Target:
public boolean isAccessible(Map context, Object target, Member member, String propertyName) { LOG.debug("Checking access for [target: {}, member: {}, property: {}]", target, member, propertyName); final Class memberClass = member.getDeclaringClass(); Class targetClass = (target != null ? target.getClass() : memberClass); if (checkEnumAccess(target, member)) { LOG.trace("Allowing access to enum: target class of target [{}], member [{}]", targetClass, target, member); return true; } if (Modifier.isStatic(member.getModifiers()) && allowStaticMethodAccess) { LOG.debug("Support for accessing static methods [target: {}, targetClass: {}, member: {}, property: {}] is deprecated!", target, targetClass, member, propertyName); if (!isClassExcluded(memberClass)) { targetClass = memberClass; } } if (isPackageExcluded(targetClass.getPackage(), memberClass.getPackage())) { LOG.warn("Package of target class of target or package of member are excluded!", targetClass.getPackage(), targetClass, target, memberClass.getPackage(), member); return false; } if (isClassExcluded(targetClass)) { LOG.warn("Target class of target is excluded!", targetClass, target); return false; } if (isClassExcluded(memberClass)) { LOG.warn("Declaring class of member type is excluded!", member); return false; } if (disallowProxyMemberAccess && ProxyUtil.isProxyMember(member, target)) { LOG.warn("Access to proxy is blocked! Target class of target [{}], member [{}]", targetClass, target, member); return false; } boolean allow = true; if (!checkStaticMethodAccess(member)) { LOG.warn("Access to static is blocked!", member); allow = false; } if (!allow) { return false; } return super.isAccessible(context, target, member, propertyName) && isAcceptableProperty(propertyName); }