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

Stale versionable parent node when children get added from multiple repositories

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.11.3
    • None
    • jackrabbit-core, versioning
    • None

    Description

      I am experiencing the same issue as described in JCR-1961 when running on Jackrabbit 2.x. The sample test project, which is based on the one provided for the aforementioned issue, is attached. The stack trace looks like this:

      javax.jcr.RepositoryException: org.apache.jackrabbit.core.state.StaleItemStateException: 8e377ea0-c5b2-49a6-ade9-f7031fcbfeb8/{http://www.jcp.org/jcr/1.0}predecessors has been modified externally
      	at org.apache.jackrabbit.core.version.VersionManagerImplBase.checkoutCheckin(VersionManagerImplBase.java:218)
      	at org.apache.jackrabbit.core.VersionManagerImpl.access$300(VersionManagerImpl.java:73)
      	at org.apache.jackrabbit.core.VersionManagerImpl$2.perform(VersionManagerImpl.java:142)
      	at org.apache.jackrabbit.core.VersionManagerImpl$2.perform(VersionManagerImpl.java:135)
      	at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
      	at org.apache.jackrabbit.core.VersionManagerImpl.perform(VersionManagerImpl.java:96)
      	at org.apache.jackrabbit.core.VersionManagerImpl.checkout(VersionManagerImpl.java:135)
      	at concurrent.version.test.ConcurrentVersionNodeAddTest.checkoutNode(ConcurrentVersionNodeAddTest.java:117)
      	at concurrent.version.test.ConcurrentVersionNodeAddTest.testConcurrentNodeAdd(ConcurrentVersionNodeAddTest.java:105)
      	...
        
      Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: 8e377ea0-c5b2-49a6-ade9-f7031fcbfeb8/{http://www.jcp.org/jcr/1.0}predecessors has been modified externally
      	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:679)
      	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1511)
      	at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1541)
      	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:400)
      	at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
      	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:375)
      	at org.apache.jackrabbit.core.version.VersionManagerImplBase$WriteOperation.save(VersionManagerImplBase.java:470)
      	at org.apache.jackrabbit.core.version.VersionManagerImplBase.checkoutCheckin(VersionManagerImplBase.java:215)
      	... 41 more
      

      Questions

      It would be great if I could get the following questions answered:

      1. Is this behavior expected?
      2. Am I misusing the API and if so, what is the correct way?

      Attachments

        1. concurrent-version-test.zip
          15 kB
          Illia Khokholkov

        Issue Links

          Activity

            People

              Unassigned Unassigned
              illia.khokholkov Illia Khokholkov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: