Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
2.2.8
-
None
-
None
-
CentOS x64
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.