[ 
https://issues.apache.org/jira/browse/SYNCOPE-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13434163#comment-13434163
 ] 

Colm O hEigeartaigh commented on SYNCOPE-185:
---------------------------------------------


This block of code in the PropagationManager seems to be the problem:

final SyncopeUser user = getSyncopeUser(task.getSyncopeUser().getId());

                            if (user == null || 
!user.getResourceNames().contains(task.getResource().getName())) {
                                // perform de-provisioning
                                LOG.debug("Perform deprovisioning on {}", 
task.getResource().getName());

                                connector.delete(
                                        task.getPropagationMode(),
                                        ObjectClass.ACCOUNT,
                                        before.getUid(),
                                        null,
                                        propagationAttempted);
                            } else {
                                // Update remote profile.
                                // This is absolutely needed because otherwise 
the resource won't be updated: 
                                // resources to be deleted won't be considered 
by UserDataBinder.update() for the update
                                // but, often, this have to be done.
                                LOG.debug("Update remote object on {}", 
task.getResource().getName());

                                connector.update(
                                        task.getPropagationMode(),
                                        ObjectClass.ACCOUNT,
                                        before.getUid(),
                                        task.getAttributes(),
                                        null,
                                        propagationAttempted);
                            }

The user is not null + the user's Resource names do contain the task name and 
so it calls the "update" operation instead. Any idea why this code calls update 
instead of delete?

Colm.
                
> Could not delete an user with LDAP resource
> -------------------------------------------
>
>                 Key: SYNCOPE-185
>                 URL: https://issues.apache.org/jira/browse/SYNCOPE-185
>             Project: Syncope
>          Issue Type: Bug
>    Affects Versions: 1.0.0-incubating
>         Environment: embedded
>            Reporter: Francesco Chicchiriccò
>             Fix For: 1.0.1-incubating, 1.1.0-incubating
>
>
> An update operation is issued instead of delete, returning the following 
> exception:
> 17:00:11.708 DEBUG 
> org.identityconnectors.framework.api.operations.UpdateApiOp.update Exception:
> org.identityconnectors.framework.common.exceptions.ConnectorException: 
> javax.naming.NameAlreadyBoundException: [LDAP: error code 68 - Attempt to 
> move entry onto itself.]; remaining name '[email protected],ou=people,o=isp'
> [...]

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to