jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Wieler" <bob.wie...@gmail.com>
Subject Merging non-versionable nodes
Date Thu, 05 Jul 2007 15:24:43 GMT
Hi,

I am hoping that someone can help me with what seems to be a problem with
the merging of non-versioned nodes (I am currently using Jackrabbit 1.3). I
am using a workspace that contains versionable nodes with a number of
non-versionable referenceable children. After performing a merge the
non-versionable children are merged even if a conflict exists in the parent
versionable node.

Unless I am greatly misunderstanding the JCR specification (both the current
JSR-170 and upcoming JSR-283) there appears to be a conflict in the section
describing merges and the algorithm provided (which Jackrabbit implements).

>From JSR-170 section 8.2.10 Merge:

"In either case, (regardless of whether bestEffort is true or false) for
each non-versionable node (including both referenceable and
non-referenceable), if the merge result of its nearest versionable ancestor
is update, or if it has no versionable ancestor, then it is updated to
reflect the state of its corresponding node. Otherwise, it is left
unchanged."

>From this I read that if a versionable node has a merge result other than
update (a failure) then any non-versionable children of that versionable
node should be left unchanged (assuming bestEffort is true of course).
However the algorithm presented in 8.2.10.1 of the specification seems to go
against the above statement.

On a dofail(n, v') if bestEffort is true then the jcr:mergeFailed property
is set, the UUID is added to the failedset, and then doleave(n) is done.
doleave states that for each child node c of n domerge(c) which in turn will
perform a doupdate(n, n') for non-versionable children.

Am I missing something fundamental about the way merging of nodes should be
done in JCR? If the merge of a versioned node fails shouldn't it just
perform a merge of the versioned child nodes rather than all of the child
nodes?

Thank you for your help,

Bob Wieler

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message