SearchControls searchControls = new SearchControls();
searchControls.setCountLimit(inRequest.getSearchUpperBound());
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
// add passed in attribute criteria to filter.
AbstractFilter abstractFilter = filterCreator.getFilter(inRequest.getQueryString());
// get the configured CollectingNameClassPairCallbackHandler to use for query.
CollectingNameClassPairCallbackHandler collectingHandler = handlerFactory.getCallbackHandler();
// execute query.
ldapSearchStrategy.searchLdap(template, abstractFilter.encode(), searchControls, collectingHandler);
// get results gathered by CollectingNameClassPairCallbackHandler.
List<Type> rawResults = collectingHandler.getList();
// Results contain nulls if the context/attribute mappers were unable to create objects, so pull them out.