Details
-
Task
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
JCR events contain the JCR identifier, even for NODE_REMOVED. In spi2dav, the identifier in the client isn't necessarily the same as on the server. For instance, jackrabbit-core uses UUIDs for all nodes, while sp2dav uses them only for referenceablw nodes.
When forwarding events, spi2dav's URIResolver PROPFINDs on the path of the node in order to obtain the remote node's jcr.uuid, local name, and index; and repeats that for ancestors until a referenceable node or the root node is found. This of course does not work for removed nodes.
The change for JCR-2540 has enhanced getIdentifier() on events to fall back to create an absolute-path-based ID. Thus, the API test case does not fail anymore as it happens to expect that identifier format.
Things to consider:
- harmonize local identifiers with remote identifiers so that we don't need additional information to map them
- try to populate the local URI->NodeId cache, so that we haev the mapping information at least for nodes that we have seen before
Attachments
Issue Links
- relates to
-
JCR-2540 spi2dav : move/reorder not properly handled by observation
- Closed