[ 
https://issues.apache.org/jira/browse/DIRSERVER-1599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emmanuel Lecharny resolved DIRSERVER-1599.
------------------------------------------

    Resolution: Fixed

Fixed, the ChangeLog interceptor has been moved at the end of the iChain

> 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