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

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.5.7
    • 2.0.0-M1
    • 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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            elecharny Emmanuel Lécharny
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: