[ 
https://issues.apache.org/jira/browse/DIRSTUDIO-513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12764724#action_12764724
 ] 

Stefan Seelmann commented on DIRSTUDIO-513:
-------------------------------------------

The connection wizard and properties now contain a fourth tab called 'Editor 
Option'. The modify operation done in entry editors can be configured there. 
For attributes with equality matching rules (EMR) and for attributes without 
EMR the 'modify mode' could be selected, there are three options:
- Optimized: uses add/del, but uses replace if count of replace operation is 
less (default)
- Replace: always uses replace operations
- Add/Delete: always uses add and delete operations

Additonally, when using add/delete the modify order is configurable: delete 
first or add first.

@Martin: The default modification order is 'Delete first' which should solve 
your problem.
BTW: I don't think that this is an eDirectory problem, sorry if I claimed that 
in earlier mails. The attribute objectClasses uses 
objectIdentifierFirstComponentMatch, so only the OID is used to check if two 
values are equal. Even if the add would work, which value should be deleted by 
the delete operation? Both values would match. So IMO the only valid 
modification order is delete first, then add.

@Leo: In your case just select REPLACE for attributes w/o EMR.

I tested with ApacheDS, OpenLDAP, SunDS, OpenDS, FedoraDS, eDirectory and 
Active Directory.

To sum up: this is a field where various LDAP server are implemented very 
differently:
* OpenLDAP is very strict, attributes w/o EMR must be edited using replace 
operation
* ApacheDS and OpenDS allow to use add and delete operations for attributes 
without EMR
* In FedoryDS many standard attribute types (cn, teleponeNumber, etc.) don't 
define an EMR, however add/delete operations work
* Active Directory and eDirectory don't expose any EMR at all, however 
add/delete operations work


> Do delete before add when modifying attribute values
> ----------------------------------------------------
>
>                 Key: DIRSTUDIO-513
>                 URL: https://issues.apache.org/jira/browse/DIRSTUDIO-513
>             Project: Directory Studio
>          Issue Type: Improvement
>    Affects Versions: 1.4.0
>            Reporter: Martin Alderson
>            Priority: Minor
>             Fix For: 1.5.0
>
>
> When connecting to Novell eDirectory and modifying the schema an "Attribute 
> Or Value Exists" error occurs.  This is due to the modification performing an 
> add before the delete and eDirectory (wrongly) complains that the same OID 
> has been used more than once before realising that the old value should be 
> deleted.  Note that this is a problem with eDirectory but it would be useful 
> if Studio asked for the delete to be performed before the add when modifying 
> an attribute value which eDirectory is OK with.
> An example of the LDIF in the modifications logs view for an operation that 
> fails is:
> dn: cn=schema
> changetype: modify
> add: objectClasses
> objectClasses: ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' [...new 
> value...]
> -
> delete: objectClasses
> objectClasses: ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' [...old 
> value...]
> -
> It also seems that modifying the schema on ApacheDS has the same issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to