public synchronized void search(SearchOperation searchOperation)
throws DirectoryException
{
// Get the base DN, scope, and filter for the search.
DN baseDN = searchOperation.getBaseDN();
SearchScope scope = searchOperation.getScope();
SearchFilter filter = searchOperation.getFilter();
// Make sure the base entry exists if it's supposed to be in this backend.
this.initEntryMaps();
Entry baseEntry = entryMap.get(baseDN);
if ((baseEntry == null) && handlesEntry(baseDN))
{
DN matchedDN = baseDN.getParentDNInSuffix();
while (matchedDN != null)
{
if (entryMap.containsKey(matchedDN))
{
break;
}
matchedDN = matchedDN.getParentDNInSuffix();
}
Message message =
ERR_MEMORYBACKEND_ENTRY_DOESNT_EXIST.get(String.valueOf(baseDN));
throw new DirectoryException(