JCR2SPI: NPE when parentId returned by NodeInfo.getParentId does not show up in 
parent's child node list
--------------------------------------------------------------------------------------------------------

                 Key: JCR-615
                 URL: http://issues.apache.org/jira/browse/JCR-615
             Project: Jackrabbit
          Issue Type: Bug
          Components: SPI
         Environment: JCR2SPI run against a custom SPI implementation
            Reporter: Julian Reschke


In this custom SPI implementation, version history nodes appear as children of 
jcr:versionStorage, but jcr:versionStorage does not return them as children 
(which would be impractical for performance reasons - I expect similar 
approaches used by others...).

getParentId of a NodeInfo of a VersionHistory return the NodeId for 
jcr:versionStorage. In this case, I get the NPE below:

java.lang.NullPointerException
        at 
org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(WorkspaceItemStateFactory.java:99)
        at 
org.apache.jackrabbit.jcr2spi.state.CachingItemStateManager.resolve(CachingItemStateManager.java:168)
        at 
org.apache.jackrabbit.jcr2spi.state.CachingItemStateManager.getItemState(CachingItemStateManager.java:94)
        at 
org.apache.jackrabbit.jcr2spi.WorkspaceManager.getItemState(WorkspaceManager.java:328)
        at 
org.apache.jackrabbit.jcr2spi.state.TransientISFactory.createNodeState(TransientISFactory.java:120)
        at 
org.apache.jackrabbit.jcr2spi.state.CachingItemStateManager.resolve(CachingItemStateManager.java:168)
        at 
org.apache.jackrabbit.jcr2spi.state.CachingItemStateManager.getItemState(CachingItemStateManager.java:94)
        at 
org.apache.jackrabbit.jcr2spi.state.TransientItemStateManager.getItemState(TransientItemStateManager.java:209)
        at 
org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:155)
        at 
org.apache.jackrabbit.jcr2spi.SessionImpl.getNodeById(SessionImpl.java:271)
        at 
org.apache.jackrabbit.jcr2spi.SessionImpl.getNodeByUUID(SessionImpl.java:239)

Returning null in this special case fixes the problem over here, but seems to 
create new problems elsewhere.

Need to clarify the SPI itself, and potentially fix JCR2CPI.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to