[ https://issues.apache.org/jira/browse/OAK-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13528089#comment-13528089 ]
Manfred Baedke commented on OAK-343: ------------------------------------ I looked into it and found that it should be possible to wrap the RootImpl.indexProvider in order to add a QueryIndex that contains our transient map and takes care of the UUID lookup. Straightforward approaches using a Map that is aggregated by RootImpl would require a change to the Root interface, and I suppose that we do not want that. > 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 > > 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