You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@syncope.apache.org by "Colm O hEigeartaigh (JIRA)" <ji...@apache.org> on 2012/08/14 16:49:37 UTC

[jira] [Commented] (SYNCOPE-185) Could not delete an user with LDAP resource

    [ 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 'uid=pippo4@pippo.it,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