Le 02/02/15 21:28, Harris, Christopher P a écrit : > Hi, Emmanuel. > > Do you have any updates on this issue?
Sorry, was busy the last few days... Here are my findings : Basically, it works. I have used a slightly different version of the code : public void searchLdapUsingHybridApproach() { SearchCursor cursor = new SearchCursorImpl( null, 30000, TimeUnit.SECONDS ); Entry entry = null; try { SearchRequest sr = new SearchRequestImpl(); sr.setBase( new Dn( "ou=system" ) ); sr.setFilter( "(ObjectClass=*)" ); sr.setScope( SearchScope.SUBTREE ); cursor = connection.search( sr ); Response response; while ( cursor.next() && cursor.isEntry() ) { response = cursor.get(); System.out.println( ( ( SearchResultEntry ) response ).getEntry() ); entry = cursor.getEntry(); } } catch ( LdapException ex ) { ex.printStackTrace(); } catch ( CursorException ex ) { ex.printStackTrace(); } finally { cursor.close(); try { connection.close(); } catch ( IOException ex ) { ex.printStackTrace(); } } } just to check that ther API returns the correct entries in the various cases (OBJECT, ONELEVEL and SUBTREE). It does. So now, here is my hypothesys : there is a bug in the EntryMapper. When I run the code using the EntryMapper, I get a NPE because the EntryMapper tries to do that : public Person map( Entry entry ) throws LdapException { try { return new Person.Builder() .setDistinguishedName( entry.getDn().getName() ) .setFirstName( entry.get( "givenName" ).getString() ) <---- NPE here because I have no givenName in the entry I'm reading .setLastName( entry.get( "sn" ).getString() ) .setTitle( entry.get( "title" ).getString() ) .setDepartment( entry.get( "department" ).getString() ) .setDivision( entry.get( "extensionAttribute14" ).getString() ) .setCity( entry.get( "l" ).getString() ) .setCountry( entry.get( "co" ).getString() ) .setEmail( ( entry.get( "mail" ) != null ) ? entry.get( "mail" ).getString() : "" ) .setDeskLocation( entry.get( "postOfficeBox" ).getString() ) .setOfficePhone( ( entry.get( "telephoneNumber" ) != null ) ? entry.get( "telephoneNumber" ).getString() : "" ) .setDirectReports( entry.get( "directreports" ) ) .build(); So my guess is that in your case your entry is missing some of the expected attribute, and this is why you get no result. Can you chack that by printing the entry just hafter having pulled it from the LDAP server ? Thanks !