Hi,

I did mention that I'm working on an SPI implementation for an existing store, and trying to get it up with jcr2spi, right?

Anyway, in the meantime I can login to my store, and get the root node; so far, so good.

If I now try hasNodes(), I'm getting the ClassCastException below...:

java.lang.ClassCastException
at org.apache.jackrabbit.jcr2spi.state.NodeState$ChildNodeEntries.get(NodeState.java:1509) at org.apache.jackrabbit.jcr2spi.state.NodeState$ChildNodeEntries.access$1(NodeState.java:1507) at org.apache.jackrabbit.jcr2spi.state.NodeState.assertAvailability(NodeState.java:196)
        at 
org.apache.jackrabbit.jcr2spi.state.NodeState.<init>(NodeState.java:131)
at org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(WorkspaceItemStateFactory.java:155) at org.apache.jackrabbit.jcr2spi.state.WorkspaceItemStateFactory.createNodeState(WorkspaceItemStateFactory.java:121) at org.apache.jackrabbit.jcr2spi.state.entry.UUIDReference.doResolve(UUIDReference.java:83) at org.apache.jackrabbit.jcr2spi.state.entry.ChildItemReference.resolve(ChildItemReference.java:110) at org.apache.jackrabbit.jcr2spi.state.entry.ChildNodeReference.getNodeState(ChildNodeReference.java:120) 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:145) at org.apache.jackrabbit.jcr2spi.state.entry.UUIDReference.doResolve(UUIDReference.java:83) at org.apache.jackrabbit.jcr2spi.state.entry.ChildItemReference.resolve(ChildItemReference.java:110) at org.apache.jackrabbit.jcr2spi.state.entry.ChildNodeReference.getNodeState(ChildNodeReference.java:120) at org.apache.jackrabbit.jcr2spi.ItemManagerImpl.hasChildNodes(ItemManagerImpl.java:205)
        at org.apache.jackrabbit.jcr2spi.NodeImpl.hasNodes(NodeImpl.java:634)


This is because the code casts to "LinkedEntries.LinkNode", but what the iterator returns is a UUIDReference. It seems to me that this can't be caused by my SPI doing something wrong; just probably different from what the other existing implementations do.

Any idea what could be going on here?

Best regards, Julian


Reply via email to