Revert operation does not work for rename if some modify operation is needed
----------------------------------------------------------------------------

                 Key: DIRSERVER-1599
                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1599
             Project: Directory ApacheDS
          Issue Type: Bug
    Affects Versions: 1.5.7
            Reporter: Emmanuel Lecharny
            Priority: Critical
             Fix For: 2.0-M1


When we do a rename on a AdministrativePoint, this imply an update of the 
adminiPoint sequence number. This is done by calling a modify. the sequence of 
calls in the interceptor chain is then the following :

changeLog.rename( old, new)
  ...
  subentry.rename(old, new)
    backend.rename(old, new)
    ds.modify(new)
      ...
      changeLog.modify(new)
        ...
          backend.modify(new)
        store modify(new)
  store rename(new,old)

At the end, the revert stack will contain (in the order of execution) :
rename(new,old)
modify(new)
...

The problem is that the rename will be applied first (that will work), but the 
modify will throw an exception, as the 'new' entry has been renamed to 'old'.

this is because we reenter the chain from the inside, so the changeLog stack is 
not anymore stored in the right order. 

We have to add a way to get the changelog to store revert operations the right 
way.

-- 
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