getRelationships()上neo4j IndexOutOfBoundsException的原因

getRelationships()上neo4j IndexOutOfBoundsException的原因,neo4j,Neo4j,这在neo4j版本2.3.0-M02 为什么这个代码 Iterable<Relationship> rels = node.getRelationships( ... any various args ... ); for (Relationship rel : rels) { // Some computation } Iterable rels=node.getrelations(…任何不同的参数…); for(关系rel:rels){ //一些计算 } 。。。导致堆

这在
neo4j
版本
2.3.0-M02

为什么这个代码

Iterable<Relationship> rels = node.getRelationships( ... any various args ... );
for (Relationship rel : rels) {
    // Some computation
}
Iterable rels=node.getrelations(…任何不同的参数…);
for(关系rel:rels){
//一些计算
}
。。。导致堆栈跟踪的原因是什么

Caused by: java.lang.IndexOutOfBoundsException
    at org.neo4j.io.pagecache.impl.muninn.MuninnPageCursor.setOffset(MuninnPageCursor.java:410)
    at org.neo4j.kernel.impl.store.RelationshipGroupStore.getRecord(RelationshipGroupStore.java:117)
    at org.neo4j.kernel.impl.store.RelationshipGroupStore.getRecord(RelationshipGroupStore.java:77)
    at org.neo4j.kernel.impl.api.StoreRelationshipIterable$DenseIterator.<init>(StoreRelationshipIterable.java:214)
    at org.neo4j.kernel.impl.api.StoreRelationshipIterable.iterator(StoreRelationshipIterable.java:96)
    at org.neo4j.kernel.impl.api.StoreRelationshipIterable.iterator(StoreRelationshipIterable.java:76)
    at org.neo4j.kernel.impl.api.store.DiskLayer.nodeListRelationships(DiskLayer.java:241)
    at org.neo4j.kernel.impl.api.store.CacheLayer.nodeListRelationships(CacheLayer.java:424)
    at org.neo4j.kernel.impl.api.StateHandlingStatementOperations.nodeGetRelationships(StateHandlingStatementOperations.java:925)
    at org.neo4j.kernel.impl.api.StateHandlingStatementOperations.nodeGetRelationships(StateHandlingStatementOperations.java:933)
    at org.neo4j.kernel.impl.api.ConstraintEnforcingEntityOperations.nodeGetRelationships(ConstraintEnforcingEntityOperations.java:426)
    at org.neo4j.kernel.impl.api.OperationsFacade.nodeGetRelationships(OperationsFacade.java:361)
    at org.neo4j.kernel.impl.core.NodeProxy$2.iterator(NodeProxy.java:194)
    at org.neo4j.kernel.impl.core.NodeProxy$2.iterator(NodeProxy.java:186)
原因:java.lang.IndexOutOfBoundsException
位于org.neo4j.io.pagecache.impl.muninn.MuninnPageCursor.setOffset(MuninnPageCursor.java:410)
位于org.neo4j.kernel.impl.store.RelationshipGroupStore.getRecord(RelationshipGroupStore.java:117)
位于org.neo4j.kernel.impl.store.RelationshipGroupStore.getRecord(RelationshipGroupStore.java:77)
位于org.neo4j.kernel.impl.api.StoreRelationshipIterable$denseInterator。(StoreRelationshipIterable.java:214)
位于org.neo4j.kernel.impl.api.StoreRelationshipIterable.iterator(StoreRelationshipIterable.java:96)
位于org.neo4j.kernel.impl.api.StoreRelationshipIterable.iterator(StoreRelationshipIterable.java:76)
位于org.neo4j.kernel.impl.api.store.DiskLayer.nodeListRelationships(DiskLayer.java:241)
位于org.neo4j.kernel.impl.api.store.CacheLayer.nodelistreationships(CacheLayer.java:424)
位于org.neo4j.kernel.impl.api.StateHandlingStatementOperations.nodeGetRelationships(StateHandlingStatementOperations.java:925)
位于org.neo4j.kernel.impl.api.StateHandlingStatementOperations.nodeGetRelationships(StateHandlingStatementOperations.java:933)
位于org.neo4j.kernel.impl.api.ConstraintEnforcingEntityOperations.nodeGetRelationships(ConstraintEnforcingEntityOperations.java:426)
位于org.neo4j.kernel.impl.api.OperationsFacade.nodeGetRelationships(OperationsFacade.java:361)
位于org.neo4j.kernel.impl.core.NodeProxy$2.iterator(NodeProxy.java:194)
位于org.neo4j.kernel.impl.core.NodeProxy$2.iterator(NodeProxy.java:186)

更新:


您应该升级到Neo4j 2.3.0-M03

里程碑版本往往不稳定,您使用的是旧版本。大家都知道M02有bug,很多bug都是在M03中修复的


所以,升级并检查这是否适合您。

您可以添加一个简单的
system.out.println(“调试”)在for循环中?看看它是否至少做过一次。问题可能来自一个空的结果集,因为它实际上没有进入循环…您肯定应该将代码升级到2.3.0-M03。里程碑版本不稳定-可能出现错误。所以,升级Neo4j并检查-可能bug已经修复,不再有例外。除了@FylmTM所说的,我建议在您的商店目录上运行一致性检查程序,有关详细信息,请参阅@FylmTM升级到下一个里程碑似乎已经修复了此问题。如果您想将此作为回答,我接受:)