Issue Details (XML | Word | Printable)

Key: DIRSERVER-636
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Emmanuel Lecharny
Reporter: Stefan Zoerner
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Directory ApacheDS

Performing two modifications on a single attribute within a single modify operation fails.

Created: 07/Jun/06 07:38 PM   Updated: 02/Oct/06 01:04 PM
Return to search
Component/s: None
Affects Version/s: 1.0-RC3
Fix Version/s: None

Time Tracking:
Not Specified

File Attachments:
  Size
Java Source File Licensed for inclusion in ASF works ModifyOpsTest.java 2006-06-07 07:48 PM Stefan Zoerner 4 kB
Environment:
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

Resolution Date: 30/Jul/06 03:12 PM


 Description  « Hide
Performing two modifications on a single attribute within a single modify operation fails.

After creating an entry like this:

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

e.g.

$ ldapmodify -h localhost -p 10389 -D "uid=admin,ou=system" -w ****** -a -f KateBush.ldif
adding new entry cn=Bush\, Kate,dc=example,dc=com

I perform a modify operation with two modification items:

dn: cn=Kate Bush,dc=example,dc=com
changetype: modify
add: description
description: Kate Bush is a British singer-songwriter.
description: She has become one of the most influential female artists of the twentieth century.
-
delete: description
description: She has become one of the most influential female artists of the twentieth century.

which results in an error:

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

The expected result is to perform both modification items within a single transaction, resulting in an entry like this:

dn: cn=Kate Bush,dc=example,dc=com
objectclass: person
objectclass: top
sn: Bush
cn: Kate Bush
description: Kate Bush is a British singer-songwriter.

Find an equivalent JNDI JUnit test case attached.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Stefan Zoerner added a comment - 07/Jun/06 07:48 PM
A JUnit test case which performs the operations described in the issue with JNDI, and fails on ApacheDS.

Stefan Zoerner made changes - 07/Jun/06 07:48 PM
Field Original Value New Value
Attachment ModifyOpsTest.java [ 12335138 ]
Emmanuel Lecharny added a comment - 30/Jul/06 12:47 AM
This is an error deep into the server.

Modification operations should be considered as atomic operations, this a add of an attribute followed by a remove should act as if the entry contains the added attribute when we try to remove it. This is not the case atm, because we compare the modifications with the actual entry, woithout applying the modifications on the fly.

A fix in the SchemaService modify's method is being tested.

Emmanuel Lecharny made changes - 30/Jul/06 12:47 AM
Assignee Emmanuel Lecharny [ elecharny ]
Emmanuel Lecharny made changes - 30/Jul/06 12:47 AM
Status Open [ 1 ] In Progress [ 3 ]
Emmanuel Lecharny added a comment - 30/Jul/06 03:12 PM
Ok, the bug has been fixed. We now apply the modification to a cloned entry, and check that there are no incompatible modifications.

Emmanuel Lecharny made changes - 30/Jul/06 03:12 PM
Status In Progress [ 3 ] Resolved [ 5 ]
Resolution Fixed [ 1 ]
Stefan Zoerner added a comment - 31/Jul/06 07:17 PM
I have retetested the problem on the current optimization branch (Revision 427216) and I can confirm that it is fixed. Thanks Emmanuel! I'll close the issue if the code is merged in the 1.0 branch.

Stefan Zoerner added a comment - 02/Oct/06 01:04 PM
I have retested this with the current 1.0 version of ApacheDS. Works fine, thus I close this issue. Thanks Emmanuel!

Stefan Zoerner made changes - 02/Oct/06 01:04 PM
Status Resolved [ 5 ] Closed [ 6 ]