[ https://issues.apache.org/jira/browse/OAK-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13529779#comment-13529779 ]
Michael Dürig commented on OAK-343: ----------------------------------- bq. but then we have to change the Root interface On a second thought, this might not be a bad thing: retrieving nodes by their id is an integral part of JCR. So exposing the corresponding functionality directly in the Oak API seems like a good idea and {{Root}} seems like a good place. OTOH the indexing approach - while very elegant - kind of exposes implementation details of a certain way to resolve ids to nodes. > Session.getNodeByUUID requires save call > ---------------------------------------- > > Key: OAK-343 > URL: https://issues.apache.org/jira/browse/OAK-343 > Project: Jackrabbit Oak > Issue Type: Bug > Components: core, jcr > Reporter: angela > Attachments: oak-343.patch > > > while adding mix:referenceable to a new node immediately assigns a > uuid and makes the node referenceable, session.getNodeByUUID only works > after saving the changes. > the following test illustrates this behavior: > @Test > public void getNodeByUUID() throws RepositoryException { > Node node = getNode("/foo").addNode("boo"); > node.addMixin(JcrConstants.MIX_REFERENCEABLE); > assertTrue(node.isNodeType(JcrConstants.MIX_REFERENCEABLE)); > String uuid = node.getUUID(); > assertNotNull(uuid); > assertEquals(uuid, node.getIdentifier()); > Node nAgain = node.getSession().getNodeByUUID(uuid); > assertTrue(nAgain.isSame(node)); > assertTrue(nAgain.isSame(node.getSession().getNodeByIdentifier(uuid))); > } -- 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