[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-tabpanelfocusedCommentId=13760051#comment-13760051 ] angela commented on OAK-999: ok... in this case the mandatory flag is probably correct but we should rather read the jcr:frozenUUID to be the frozen identifier of the node, which apart from referenceable nodes is a implementation detail. that way round it actually makes sense. 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
[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-tabpanelfocusedCommentId=13758850#comment-13758850 ] Marcel Reutegger commented on OAK-999: -- This was done on purpose. See https://issues.apache.org/jira/browse/OAK-168?focusedCommentId=13651910page=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
[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-tabpanelfocusedCommentId=13758933#comment-13758933 ] Marcel Reutegger commented on OAK-999: -- bq. differnt interpretation for the word copy in case it is a mix:referenceable Node or not I agree, that's not really consistent. What if we changed it use nt:frozenNode even for copied nodes, but set the jcr:frozenUuid to a dummy value for non-referenceable nodes? E.g. an empty string. Would this be a problem for your use case? 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
[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-tabpanelfocusedCommentId=13759027#comment-13759027 ] angela commented on OAK-999: maybe the definition of the nt:frozenNode is simply wrong by defining the jcr:frozenUuid property as mandatory? in jackrabbit-core nobody would have noticed since the all nodes had a uuid anyway... 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
[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-tabpanelfocusedCommentId=13759116#comment-13759116 ] Christan Keller commented on OAK-999: - [~mreutegg] My case would be fixed with the consistent nt:frozenNodes for the version graph with dummy frozenUUID values for non-referenceable Nodes. If I am right the Jackrabbits UUID /NodeId for non-referenceable Nodes has only been accessable by use of jackrabbit.core classes and Implementaion classes. Its usage in the field should therefor be very restricted. Bugs where people use the frozenUUID to access the normal (unversioned) Node should be rare. Apart from that this retundant value may cause other issues. (http://www.day.com/specs/jcr/2.0/3_Repository_Model.html#3.13.4.4%20Frozen%20Identifier) May open a solution to give a value that may allow to enter a value for non-referencable Nodes without risk, like use the Path? 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