[ https://issues.apache.org/jira/browse/DIRSERVER-1393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12739808#action_12739808 ] Emmanuel Lecharny commented on DIRSERVER-1393: ---------------------------------------------- I have looked at the Modification operation code many times. All the ugly work is done in the schema interceptor : a new entry is created, and all the modification are applied there. I must say that the way we handle modification in this area is frankly not very clean, but I never had enough time (and probably I was reluctant to do so) to clean the code. It may be time to do so. The basic algorithm should be to create a copy of the entry, apply the modifications on it, and if it's still consistent wrt schema, apply the change. It's not very complicated, my estimation is that it's a matter of 2 days. I would suggest we fix it for 1.5.5 > Modification with multiple items are not considered as atomic operation > ----------------------------------------------------------------------- > > Key: DIRSERVER-1393 > URL: https://issues.apache.org/jira/browse/DIRSERVER-1393 > Project: Directory ApacheDS > Issue Type: Bug > Components: ldap > Affects Versions: 1.5.4 > Reporter: Stefan Seelmann > Priority: Critical > Fix For: 1.5.5 > > > Having the following entry: > --------------------------------------------------------------------- > dn: cn=test,ou=Users,dc=example,dc=com > objectClass: inetOrgPerson > objectClass: organizationalPerson > objectClass: person > objectClass: top > cn: test > sn: test > --------------------------------------------------------------------- > When trying to change the "sn" must attribute with following modification sequence fails with error " [15:48:05] ERROR [org.apache.directory.server.core.schema.SchemaInterceptor] - Trying to remove a required attribute: sn". > --------------------------------------------------------------------- > dn: cn=test,ou=Users,dc=example,dc=com > changetype: modify > delete: sn > sn: test > - > add: sn > sn: test2 > - > --------------------------------------------------------------------- > Order of add/delete or delete/add doesn't matter. Using "replace" works. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.