Issue #581 has been updated by David Coutadeur.
File reference581.patch added
% Done changed from 0 to 70
The problem maily comes from two java classes :
- src/main/java/org/lsc/AbstractSynchronize.java
- src/main/java/org/lsc/service/SyncReplSourceService.java
The run method in AbstractSynchronize calls respectively
getSourceService().getBean(...) and task.getDestinationService().getBean(...) :
<pre>
public boolean run(Entry<String, LscDatasets> id) {
try {
IBean entry =
task.getSourceService().getBean(id.getKey(), id.getValue(), true);
return run(entry);
[...]
public boolean run(IBean entry) {
[...]
// Search destination for matching object
if(id != null) {
dstBean =
task.getDestinationService().getBean(id.getKey(), id.getValue(), true);
} else {
LscDatasets entryDatasets = new LscDatasets();
for(String datasetName:
entry.datasets().getAttributesNames()) {
entryDatasets.getDatasets().put(datasetName, entry.getDatasetById(datasetName));
}
dstBean =
task.getDestinationService().getBean(entry.getMainIdentifier(), entryDatasets,
true);
}
</pre>
The problem is there is not necessarily the pivots attributes in entry nor in
entryDatasets. (well, there are if the pivots attributes are in the fetched
attributes set)
Thus I propose a patch in SyncReplSourceService to create an union list
containing : the fetched attributes [Union] the pivots attributes.
The patch is included here.
----------------------------------------
Bug #581: replacement of pivot attributes in destination does not work when
pivots is not in fetched source attributes in async
http://tools.lsc-project.org/issues/581
Author: David Coutadeur
Status: Assigned
Priority: Low
Assigned to: David Coutadeur
Category: Core
Target version: 2.0.2
Problem in version: 2.0.1
Everything is in the title :
replacement of pivot attributes in destination does not work when pivots is not
in fetched source attributes in async mode.
Example :
<asyncLdapDestinationService>
[...]
<baseDn>ou=Groups,dc=example,dc=com</baseDn>
<pivotAttributes>
<string>entryDN</string>
</pivotAttributes>
<fetchedAttributes>
<string>entryDN</string>
</fetchedAttributes>
[...]
<ldapDestinationService>
[...]
<getOneFilter>(&(objectClass=structure)(entryDN={entryDN}))</getOneFilter>
If entryDN wouldn't have been in fetched attributes, the resulting filter
should have been :
(&(objectClass=structure)(?entryDN={entryDN}))
This behaviour is not reproductable in sync mode. (just in async)
--
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