Jackrabbit Content Repository
  1. Jackrabbit Content Repository
  2. JCR-3115

Versioning fixup leaves persistence in a state where the node can't be made versionable again

    Details

      Description

      Jackrabbit's version recovery mode (org.apache.jackrabbit.version.recovery system property) disconnects all version histories that expose problems that manifest in unexpected exceptions being thrown. "disconnects" means removing the properties defined for mix:versionable and removing the mixin type. The actual versioning related nodes remain in place.

      The problem: when re-adding mix:versionable, ItemSaveOperation.initVersionHistories tries to create the new version history in the same location (the path being derived from the versionable node's identifier), and consequently fails because of the broken underlying storage.

      (attaching a work-in-progress test case that illustrates the problem)

      1. AutoFixCorruptNode.java
        7 kB
        Julian Reschke
      2. JCR-3115.patch
        15 kB
        Julian Reschke
      3. JCR-3115.patch
        17 kB
        Julian Reschke
      4. JCR-3115.patch
        18 kB
        Julian Reschke
      5. JCR-3115.patch
        19 kB
        Julian Reschke

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Julian Reschke
              Reporter:
              Julian Reschke
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development