Uploaded image for project: 'Directory ApacheDS'
  1. Directory ApacheDS
  2. DIRSERVER-646

Replacing an unknown attribute with no values (deletion) causes an error



    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.0.2, 1.5.1
    • 1.0.3, 1.5.2, 1.5.4
    • None
    • None
    • ApacheDS 1.0 RC 3
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
      Microsoft Windows XP version 5.1 Service Pack 1


      I am not sure, whether we have implemented the following right: RFC 2251 says in chapter 4.6. (Modify Operation) the following about replace modification items:

      "replace: replace all existing values of the given attribute with the new values listed, creating the attribute if it did not already exist. A replace with no value will delete the entire attribute if it exists, and is ignored if the attribute does not exist."

      The problem I have found has to do with the second part. To make it more concrete, here is my example entry:

      dn: cn=Kate Bush,dc=example,dc=com
      cn: Kate Bush
      objectclass: top
      objectclass: person
      sn: Bush

      If I apply the following modification to it (replace with no value)

      dn: cn=Kate Bush,dc=example,dc=com
      changetype: modify
      replace: description


      $ ldapmodify -h localhost -p 10389 -D "uid=admin,ou=system" -w ****** -f replaceDescription.ldif
      modifying entry cn=Kate Bush,dc=example,dc=com

      ApacheDS works as expected and described in the RFC above: Nothing happens (especially no error).

      If I use an attribute which is not known to the server, e.g.

      dn: cn=Kate Bush,dc=example,dc=com
      changetype: modify
      replace: numberOfOctaves

      The following happens

      $ ldapmodify -h localhost -p 10389 -D "uid=admin,ou=system" -w ****** -f replaceOctaves.ldif
      modifying entry cn=Kate Bush,dc=example,dc=com
      ldap_modify: Undefined attribute type
      ldap_modify: additional info: failed to modify entry cn=Kate Bush,dc=example,dc=com

      I am not sure, whether the correct behavior is to ignore the replace modification here. But I assume it (what does "is ignored if the attribute does not exist" exactly mean in the RFC?). Sun Java System Directory Server 5.2. for instance does not throw an error in this situation.




            akarasulu Alex Karasulu
            szoerner Stefan Zoerner
            0 Vote for this issue
            0 Start watching this issue