Uploaded image for project: '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

    XMLWordPrintableJSON

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)

      Attachments

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

        Issue Links

          Activity

            People

              reschke Julian Reschke
              reschke Julian Reschke
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: