'LDAP not returning results over 1500
We are using LDAP with Spring, and the below code is yielding results < 1500 easily, but for more than 1500, its throwing an exception.
IncrementalAttributesMapper incrementalAttributeMapper =
new DefaultIncrementalAttributesMapper(new String[]{"member"});
IncrementalAttributesMapper incrementalAttributeMapper = new
DefaultIncrementalAttributesMapper(new String[]{"member"});
while (incrementalAttributeMapper.hasMore()) {
ldapTemplate.search(query().where("CN").is(unit),incrementalAttributeMapper);
List values = incrementalAttributeMapper.getValues("member");
System.out.println("inside getUserDetailsForOuc tester if memberValues "+
memberValues);
}
Error:
java.lang.IllegalStateException: Ranges cannot be compared, range-initial not the same: Range=1500-* vs Range=0-1499
at org.springframework.ldap.core.support.RangeOption.compareTo(RangeOption.java:131)
at org.springframework.ldap.core.support.DefaultIncrementalAttributesMapper$DefaultIncrementalAttributeState.calculateNextRange(DefaultIncrementalAttributesMapper.java:378)
at org.springframework.ldap.core.support.DefaultIncrementalAttributesMapper.mapFromAttributes(DefaultIncrementalAttributesMapper.java:188)
at org.springframework.ldap.core.support.DefaultIncrementalAttributesMapper.mapFromAttributes(DefaultIncrementalAttributesMapper.java:73)
at org.springframework.ldap.core.AttributesMapperCallbackHandler.getObjectFromNameClassPair(AttributesMapperCallbackHandler.java:62)
at org.springframework.ldap.core.CollectingNameClassPairCallbackHandler.handleNameClassPair(CollectingNameClassPairCallbackHandler.java:50)
Solution 1:[1]
You probably have to use paging:
PagedResultsDirContextProcessor processor = new PagedResultsDirContextProcessor(20, cookie);
EqualsFilter equalsFilter = new EqualsFilter("objectClass","inetOrgPerson");
List<String> lastNames = ldapTemplate.search("", equalsFilter.encode(), searchControls, new LastNameMapper(), processor);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | TacheDeChoco |
