Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
1.5.7
-
None
-
None
Description
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.