Uploaded image for project: 'Jackrabbit FileVault'
  1. Jackrabbit FileVault
  2. JCRVLT-128

System maintained cache nodes should be ignored

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.1.28
    • 3.1.38
    • None
    • None

    Description

      In OAK-3003 a persisted principal cache was introduced that creates rep:cache nodes under authorizables.
      Creating a package for such authorizables will result in including the cache node in there, which sounds wrong as that node is an implementation detail which doesn't make sense to install anywhere; however that can be avoided by proper filters.
      What is problematic is the installation phase, if an authorizable gets packaged with FileVault (no rep:cache in the package) and the target user/group has a rep:cache node itself the importer will try (and fail as it's protected) to delete the persisted cache node if ImportMode is set to UPDATE.
      In my opinion this is wrong, it should be possible to not touch such nodes on package installation, regardless of the chosen ImportMode.

      org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage Error during install.
      javax.jcr.nodetype.ConstraintViolationException: OakConstraint0034: Attempt to create or change the system maintained cache.
      	at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:225)
      	at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:212)
      	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:670)
      	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:496)
      	at org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.performVoid(SessionImpl.java:419)
      	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:274)
      	at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:416)
      	at org.apache.jackrabbit.vault.fs.io.AutoSave.save(AutoSave.java:175)
      	at org.apache.jackrabbit.vault.fs.io.Importer.run(Importer.java:416)
      	at org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:234)
      	at org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:153)
      

      Attachments

        1. JCRVLT-128.0.patch
          0.8 kB
          Tommaso Teofili

        Activity

          People

            tripod Tobias Bocanegra
            teofili Tommaso Teofili
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: