You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2013/09/05 09:24:52 UTC

[jira] [Commented] (OAK-999) Version creates frozenNode children with orignial NoteType instead of frozenNode

    [ https://issues.apache.org/jira/browse/OAK-999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13758850#comment-13758850 ] 

Marcel Reutegger commented on OAK-999:
--------------------------------------

This was done on purpose. See https://issues.apache.org/jira/browse/OAK-168?focusedCommentId=13651910&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13651910

In my view the spec is rather clear on what is expected. E.g. in the Versionable State section of the spec (http://www.day.com/specs/jcr/2.0/3_Repository_Model.html#3.13.9%20Versionable%20State) it says:

"For each child node C of N where

    C has an OPV of COPY,

a copy of the entire subgraph rooted at C ..."

Similarly for OPV of VERSION. There is also the problem with the nt:frozenNode node type. It contains a jcr:frozenUuid property. In Jackrabbit 2.x every node had an internal UUID even if it isn't referenceable, and this UUID was then used for jcr:frozenUuid. But Oak doesn't assign a UUID to a non-referenceable node. To me it seems nt:frozenNode only make sense for referenceable nodes.

What kind of backward compatibility issue did you face with this? Is it query related? E.g. you get more results because nodes from the version storage match, which previously wouldn't?
                
> Version creates frozenNode children with orignial NoteType instead of frozenNode
> --------------------------------------------------------------------------------
>
>                 Key: OAK-999
>                 URL: https://issues.apache.org/jira/browse/OAK-999
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: jcr
>    Affects Versions: 0.8
>            Reporter: Christan Keller
>
> For a Version the the children of a the Versions FrozenNode have the the NodeType of their origin if they are not rferenceable. Expected is nt:frozenNode.
> The JCR Spec is not explicit on the node-type for this Nodes but it is not Compatible with JR2
> Dummy Test Case that just starts a Oak Repository
> {code}
> public class Issue extends RepositoryBaseTest {
>     @Test
>     public void testVersionChild() throws RepositoryException {
>         Session admin = getAdminSession();
>         Node parent = admin.getRootNode().addNode(getClass().getSimpleName()+System.currentTimeMillis(), JcrConstants.NT_UNSTRUCTURED);
>         Node child = parent.addNode("child");
>         parent.addMixin(JcrConstants.MIX_VERSIONABLE);
>         admin.save();
>         VersionManager vm = admin.getWorkspace().getVersionManager();
>         Version v = vm.checkin(parent.getPath());
>         Node frozenChild = v.getFrozenNode().getNode(child.getName());
>         Assert.assertEquals(JcrConstants.NT_FROZENNODE, frozenChild.getPrimaryNodeType().getName());
>     }
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira