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

InvalidItemStateException occurs when add one node to repository and get his current uuid by DavEx in clustered mode

    XMLWordPrintableJSON

Details

    Description

      When add new node to repository via DavEx in clustered environment and try to retrieve his uuid, InvalidItemStateException is thrown.
      This is because each http request from a client DavExt could be answered by any node in the cluster(thinking in one load balancer plus clustered nodes) and if this node are not up to date, exception is thrown.

      I extended the SessionProviderImpl from org.apache.jackrabbit.server, and override the method getSession so that in each getSession call, I do a session.refresh() before of return the session. It works fine.

      I wonder if in future releases of JR DavEx would be good idea to have a configuration parameter to enforce the synchronization between cluster nodes, or if Session.refresh() from jcr2spi layer would support synchronization between cluster nodes as Session.refresh() in core api does.

      Attachments

        Activity

          People

            Unassigned Unassigned
            mmjose26 Jose Mendoza
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: