[
https://issues.apache.org/jira/browse/JCR-1614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598378#action_12598378
]
scytacki edited comment on JCR-1614 at 5/20/08 12:11 PM:
--------------------------------------------------------------
More info on this:
After digging through the code more it seems the real issue is that when a
mixin is added to a node the system generated properties for that mixing are
not also added to the node.
Notes:
I found another reference to how uuid's are handled during add in the method:
org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.addNodeState(NodeState,
Name, Name, String, QNodeDefinition, int)
It has this comment:
// create new nodeState. NOTE, that the uniqueID is not added to the
// state for consistency between 'addNode' and importXML // TODO review
I also found the code which automatically adds the uuid if the node type is
mix:referencable. this code is located in:
org.apache.jackrabbit.spi.commons.value.QValueFactoryImpl.computeAutoValues(QPropertyDefinition)
which is called through this stack:
org.apache.jackrabbit.spi.commons.value.QValueFactoryImpl.computeAutoValues(QPropertyDefinition)
org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.computeSystemGeneratedPropertyValues(NodeState,
QPropertyDefinition)
org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.addNodeState(NodeState,
Name, Name, String, QNodeDefinition, int)
So it seems if the mix:referenceable is part of the node definition when the
node is created then a uuid will be generated. But if the mix:referenceable is
added after the node is created then the uuid is not generated.
was (Author: scytacki):
I found another reference to how uuid's are handled during add in the
method:
org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.addNodeState(NodeState,
Name, Name, String, QNodeDefinition, int)
It has this comment:
// create new nodeState. NOTE, that the uniqueID is not added to the
// state for consistency between 'addNode' and importXML // TODO review
> uuid of newly added node
> ------------------------
>
> Key: JCR-1614
> URL: https://issues.apache.org/jira/browse/JCR-1614
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-jcr2spi
> Reporter: Scott Cytacki
> Fix For: 1.5
>
>
> I'm using jcr2spi with spi2dav.
> When I add a new child node. And add the "mix:referenceable" mixin.
> and I don't "save" the node.
> Calling node.getUUID();
> causes a repository exception.
> My reading of the JCR spec section 4.9.1.1
> is that a node should at least have a dummy UUID even if it hasn't been saved
> yet.
> The jcr2spi.NodeImpl.createNode method has the comment:
> // NOTE: uuid is generated while creating new state.
> But I cannot find where that is happening.
> I can submit a test case for this if that would help.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.