[ 
https://issues.apache.org/jira/browse/JCR-3695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Abhinav Atul updated JCR-3695:
------------------------------

    Description: 
Summary: Path not provided along with unique id in NodeId when calling 
org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, NodeId). 
Path needed to maintain SNS index

 the path index set up when populating the parent folder with child node 
info(unique id + path with index for same name sibling) is needed to maintain 
the indexing order during previous iteration.
For example, a folder node ‘F’ has been populated with two child entries 
C(uid:”abcd”,path:/F/C) and C[2](uid:”mnop”,path:/F/C[2])
When retrieving child nodes of F, NodeId only contains uid(“mnop”) and no path 
which is needed to setup path for the entry


Here is some runtime for clarity,
 Stack for parent node – creating node state
org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, NodeId)
org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(NodeId
 nodeId, NodeEntry entry)
this creates a NodeInfo of the parent with a list of childinfo containing uid + 
path of children, note that path contains
sns index of the child.
Now when trying to createNodeState for children of above parent node, stack is 
same

org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, NodeId)
org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(NodeId
 nodeId, NodeEntry entry)
*But the NodeId which should also contain path information when parent node 
state was constructed is missing*. This path is needed to maintain SNS indexing 
calculated while populating parent node.


  was:
 the path index set up when populating the parent folder with child node 
info(unique id + path with index for same name sibling) is needed to maintain 
the indexing order during previous iteration.
For example, a folder node ‘F’ has been populated with two child entries 
C(uid:”abcd”,path:/F/C) and C[2](uid:”mnop”,path:/F/C[2])
When retrieving child nodes of F, NodeId only contains uid(“mnop”) and no path 
which is needed to setup path for the entry


Here is some runtime for clarity,
 Stack for parent node – creating node state
org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, NodeId)
org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(NodeId
 nodeId, NodeEntry entry)
this creates a NodeInfo of the parent with a list of childinfo containing uid + 
path of children, note that path contains
sns index of the child.
Now when trying to createNodeState for children of above parent node, stack is 
same

org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, NodeId)
org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(NodeId
 nodeId, NodeEntry entry)
*But the NodeId which should also contain path information when parent node 
state was constructed is missing*. This path is needed to maintain SNS indexing 
calculated while populating parent node.



> Jcr2spi same name siblings not functional
> -----------------------------------------
>
>                 Key: JCR-3695
>                 URL: https://issues.apache.org/jira/browse/JCR-3695
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jcr2spi
>    Affects Versions: 2.1
>            Reporter: Abhinav Atul
>         Attachments: diff.diff
>
>
> Summary: Path not provided along with unique id in NodeId when calling 
> org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, 
> NodeId). Path needed to maintain SNS index
>  the path index set up when populating the parent folder with child node 
> info(unique id + path with index for same name sibling) is needed to maintain 
> the indexing order during previous iteration.
> For example, a folder node ‘F’ has been populated with two child entries 
> C(uid:”abcd”,path:/F/C) and C[2](uid:”mnop”,path:/F/C[2])
> When retrieving child nodes of F, NodeId only contains uid(“mnop”) and no 
> path which is needed to setup path for the entry
> Here is some runtime for clarity,
>  Stack for parent node – creating node state
> org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, NodeId)
> org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(NodeId
>  nodeId, NodeEntry entry)
> this creates a NodeInfo of the parent with a list of childinfo containing uid 
> + path of children, note that path contains
> sns index of the child.
> Now when trying to createNodeState for children of above parent node, stack 
> is same
> org.apache.jackrabbit.spi.RepositoryService.getItemInfos(SessionInfo, NodeId)
> org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(NodeId
>  nodeId, NodeEntry entry)
> *But the NodeId which should also contain path information when parent node 
> state was constructed is missing*. This path is needed to maintain SNS 
> indexing calculated while populating parent node.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to