2015-09-29 65 views
1

这在neo4j版本2.3.0-M02原因的Neo4j IndexOutOfBoundsException异常的()

发生为什么会这个代码....

Iterable<Relationship> rels = node.getRelationships(... any various args ...); 
for (Relationship rel : rels) { 
    // Some computation 
} 

...导致该堆栈跟踪?

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) 

更新:

+0

你可以在for循环中添加一个简单的'system.out.println(“DEBUG”);'?看看它是否至少有一次这样做。这个问题可能来自一个空的结果集 – Supamiu

+0

它实际上并没有进入循环... – Stewart

+1

你一定要将你的代码升级到2.3.0-M03。里程碑版本不稳定 - 可能会发生错误。因此,升级Neo4j并检查 - 可能bug已修复,并且不再有任何异常。 – FylmTM

回答

1

你应该升级到2.3.0的Neo4j-M03。

里程碑版本往往不稳定,您使用的是旧版本。众所周知,M02有缺陷,其中很多都固定在M03中。

因此,升级并检查这是否适用于您。