Restore mix:referenceable check to SessionImpl.getNodeByUUID
------------------------------------------------------------
Key: JCR-2330
URL: https://issues.apache.org/jira/browse/JCR-2330
Project: Jackrabbit Content Repository
Issue Type: Improvement
Components: jackrabbit-core
Reporter: Jukka Zitting
Priority: Minor
In revision 504623 we commented out the mix:referenceable check in the
SessionImpl.getNodeByUUID() method:
// since the uuid of a node is only exposed through jcr:uuid declared
// by mix:referenceable it's rather unlikely that a client can possibly
// know the internal uuid of a non-referenceable node; omitting the
// check for mix:referenceable seems therefore to be a reasonable
// compromise in order to improve performance.
/*
if (node.isNodeType(Name.MIX_REFERENCEABLE)) {
return node;
} else {
// there is a node with that uuid but the node does not expose it
throw new ItemNotFoundException(uuid.toString());
}
*/
This solved a minor performance issue issue with client code that used the node
UUID as a quick way to access a node. The downside was a slight incompatibility
with the spec that says that the getNodeByUUID method is only supposed to work
with mix:referenceable nodes.
Now with JCR 2.0 clients can (and should) use the Session.getNodeByIdentifier
method that does not have the mix:referenceable limitation. Thus we can restore
the original and correct functionality of the getNodeByUUID method.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.