1
void fireQuery()
{
    String rows = "";
    engine = new ExecutionEngine( graphDB );
    Transaction tx = graphDB.beginTx();

    try
    {
        ExecutionResult result = engine.execute("START n = node(*) RETURN n");


        for ( Map<String, Object> row : result )  //THIS IS THE LINE WHERE ERROR IS OCCURING
        {
            for ( Entry<String, Object> column : row.entrySet() )
            {
                rows += column.getKey() + ": " + column.getValue() + "; ";
            }
            rows += "\n";
        }

        tx.success();
    }
    finally
    {
        tx.finish();
    }
}

我收到以下错误消息

Exception in thread "main" java.lang.NullPointerException
at org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource.getHighestPossibleIdInUse(NioNeoDbPersistenceSource.java:111)
at org.neo4j.kernel.impl.core.NodeManager.getHighestPossibleIdInUse(NodeManager.java:983)
at org.neo4j.kernel.impl.core.NodeManager$1.<init>(NodeManager.java:354)
at org.neo4j.kernel.impl.core.NodeManager.getAllNodes(NodeManager.java:352)
at org.neo4j.tooling.GlobalGraphOperations$1.iterator(GlobalGraphOperations.java:66)
at org.neo4j.cypher.internal.spi.gdsimpl.GDSBackedQueryContext$$anon$1.all(GDSBackedQueryContext.scala:90)
at org.neo4j.cypher.internal.executionplan.builders.GraphGlobalStartBuilder$$anonfun$createStartPipe$1.apply(GraphGlobalStartBuilder.scala:50)
at org.neo4j.cypher.internal.executionplan.builders.GraphGlobalStartBuilder$$anonfun$createStartPipe$1.apply(GraphGlobalStartBuilder.scala:50)
at org.neo4j.cypher.internal.pipes.StartPipe$$anonfun$internalCreateResults$1.apply(StartPipe.scala:36)
at org.neo4j.cypher.internal.pipes.StartPipe$$anonfun$internalCreateResults$1.apply(StartPipe.scala:35)
at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371)
at org.neo4j.cypher.internal.ClosingIterator$$anonfun$hasNext$1.apply$mcZ$sp(ClosingIterator.scala:36)
at org.neo4j.cypher.internal.ClosingIterator$$anonfun$hasNext$1.apply(ClosingIterator.scala:35)
at org.neo4j.cypher.internal.ClosingIterator$$anonfun$hasNext$1.apply(ClosingIterator.scala:35)
at org.neo4j.cypher.internal.ClosingIterator.failIfThrows(ClosingIterator.scala:86)
at org.neo4j.cypher.internal.ClosingIterator.hasNext(ClosingIterator.scala:35)
at org.neo4j.cypher.PipeExecutionResult.hasNext(PipeExecutionResult.scala:157)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
at scala.collection.convert.Wrappers$IteratorWrapper.hasNext(Wrappers.scala:29)
at org.neo4j.cypher.PipeExecutionResult$$anon$1.hasNext(PipeExecutionResult.scala:73)
at Test.MAIN.fireQuery(MAIN.java:75)
at Test.MAIN.main(MAIN.java:60)

engine在类中的函数外部声明并且是ExecutionEngine. graphDB也在类外部声明并且是类型GraphDatabaseService并且在调用函数之前被引用到对象fireQuery

4

1 回答 1

1

这闻起来像是类路径问题或另一个线程可能会在迭代结果仍在进行中时尝试关闭 graphdb。graph.db/messages.log请发布包含最新完整启动输出的尾部以供进一步分析(可能不是内联的,可能在 pastebin 或其他一些工具上)。

您能否使用 groovy 运行https://gist.github.com/sarmbruster/6658637并查看错误是否仍然存在?当然更改您的 graphdb 实例的路径。

于 2013-09-22T10:23:39.807 回答