ctls.setSearchScope( SearchControls.SUBTREE_SCOPE );
SearchOperationContext searchOperationContext = new SearchOperationContext( session,
baseDn, filter, ctls );
searchOperationContext.setAliasDerefMode( AliasDerefMode.DEREF_ALWAYS );
EntryFilteringCursor results = nexus.search( searchOperationContext );
while ( results.next() )
{
ServerEntry result = results.get();
DN groupDn = result.getDn().normalize( normalizerMap );
EntryAttribute members = getMemberAttribute( result );
if ( members != null )
{
Set<String> memberSet = new HashSet<String>( members.size() );
addMembers( memberSet, members );
groups.put( groupDn.getNormName(), memberSet );
}
else
{
LOG.warn( "Found group '{}' without any member or uniqueMember attributes", groupDn.getName() );
}
}
results.close();
}
if ( IS_DEBUG )
{
LOG.debug( "group cache contents on startup:\n {}", groups );