throws GroupsException {
if ( ! groupDef.contains(person) )
{ return false;}
else
{
IEntityGroup group = cacheGet(groupDef.getKey());
IEntityGroup parentGroup = null;
Set<IEntityGroup> allParents = primGetAllContainingGroups(group, new HashSet<IEntityGroup>());
boolean testPassed = true;
for (Iterator<IEntityGroup> i=allParents.iterator(); i.hasNext() && testPassed;)
{
parentGroup = i.next();
GroupDefinition parentGroupDef =
(GroupDefinition) groupDefinitions.get(parentGroup.getLocalKey());
testPassed = parentGroupDef.test(person);
}
if (!testPassed && log.isWarnEnabled()) {
StringBuffer sb = new StringBuffer();
sb.append("PAGS group=").append(group.getKey());
sb.append(" contained person=").append(member.getKey());
sb.append(", but the person failed to be contained in ");
sb.append("ancesters of this group");
sb.append((parentGroup != null ? " (parentGroup="+parentGroup.getKey()+")" : ""));
sb.append(". This may indicate a ");
sb.append("misconfigured PAGS group ");
sb.append("store. Please check PAGSGroupStoreConfig.xml.");
log.warn(sb.toString());
}