Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-1117

Bundle cache is not rolled back when the storage of a ChangeLog fails

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.3, 1.4, 1.5, 1.5.2, 1.5.3, 1.5.4
    • 1.5.5
    • jackrabbit-core
    • None

    Description

      The bundle cache in the bundle persistence managers is not restored to its old state when the AbstractBundlePersistenceManager.store(ChangeLog changeLog) method throws an exception. If, for instance, the storage of references fails then the AbstractBundlePersistenceManager.putBundle(NodePropBundle bundle) method has already been called for all modified bundles. Because of the connection rollback, the bundle cache will be out-of-sync with the persistent state. As a result, the SharedItemStateManager will have an incorrect view of the persistent state.
      Furthermore, if the blockOnConnectionLoss property is set to true, then the BundleDbPersistenceManager can be caught in an infinite loop because of invalid SQL inserts because of an incorrect bundle cache; see attached stacktrace.

      Attachments

        1. JCR-1117.patch
          7 kB
          Martijn Hendriks
        2. stacktrace.txt
          2 kB
          Martijn Hendriks
        3. JCR-1117-v2.patch
          0.9 kB
          Martijn Hendriks
        4. JCR-1117-v3.patch
          1 kB
          Martijn Hendriks

        Issue Links

          Activity

            People

              Unassigned Unassigned
              martijnh Martijn Hendriks
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: