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
|