jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott Cytacki (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (JCR-1614) uuid of newly added node
Date Tue, 20 May 2008 19:11:55 GMT

    [ 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.


Mime
View raw message