Issue #456 has been updated by Raphaël Ouazana.

The patch made by David seems to be the good one. I posted a cleaned version in 
#35.
Some remarks:
- as David, I conclude that cursors are not always Iterable, but I don't know 
why.
- catch for "Exception" is necessary as the Cursor interface explicitly throws 
Exception.
----------------------------------------
Bug #456: async ldap source problem : Empty or non existant source (no IDs 
found)
http://tools.lsc-project.org/issues/456

Author: David Coutadeur
Status: Assigned
Priority: Normal
Assigned to: Sébastien Bahloul
Category: Core
Target version: 2.0
Problem in version: 2.0-SNAPSHOT


The definitive context of the problem is not completely defined, because the 
same config and version of lsc (branch 2.0) seem to produce or not the bug.
The bug is:
Empty or non existant source (no IDs found)

with this configuration:

<pre>  <asyncLdapSourceService>                                                 
                                              
        <name>ldap-src-service</name>                                           
                                             
        <connection reference="ldap-src-conn" />                                
                                             
        <baseDn>ou=people,dc=my-domain,dc=com</baseDn>                          
                                      
        <pivotAttributes>                                                       
                                             
          <string>myUniqueId</string>                                           
                                           
        </pivotAttributes>                                                      
                                             
        <fetchedAttributes>                                                     
                                             
          <string>cn</string>                                                   
                                             
          <string>sn</string>                                                   
                                             
          <string>uid</string>                                                  
                                             
          <string>myUniqueId</string>                                           
                                           
        </fetchedAttributes>                                                    
                                             
        <getAllFilter>(objectClass=inetorgperson)</getAllFilter>                
                                             
        
<getOneFilter>(&amp;(objectClass=inetorgperson)(myUniqueId={agriUniqueId}))</getOneFilter>
                         
        
<cleanFilter>(&amp;(objectClass=inetorgperson)(myUniqueId={agriUniqueId}))</cleanFilter>
                           
        <serverType>OpenLDAP</serverType>                                       
                                             
      </asyncLdapSourceService>
</pre>

The problem identified occurs in SyncReplSourceService.java
Sometimes, the for loop: 
  for(SearchResponse sr : cursor) {
is looked through, sometimes it is not, because of the iterable (or not) nature 
of the Cursor<SearchResponse>.
The problem seems fixed (every time) with the patch attached to this ticket, 
but more testing must be done.




-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://tools.lsc-project.org/my/account
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-dev mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-dev

Reply via email to