2013-04-28 47 views
1

執行neo4jClient調用期間拋出以下異常。 neo4jClient團隊告訴我這是一個neo4j問題。所以我在這裏發佈這個希望解決的問題。遇到意外的遍歷狀態

例外情況發佈如下。從數據瀏覽器執行Cypher查詢時,我也會收到無效查詢。有了這個 -

START n=node(84), n1=node(86) 
MATCH n-[r:COLLABORATES_WITH]-n1 
RETURN r 

無效查詢

然而,這個工程 -

START n=node(84), n1=node(86) 
MATCH n-[r:COLLABORATES_WITH*1]-n1 
RETURN r 

異常exectuting時 -

 var results = _client.Cypher 
     .Start(new { n1 = (NodeReference)fromId, n2 = (NodeReference)toId }) 
     .Match("n1-[r:" + relationshipTypeKey + "]->n2") 

     .Return<RelationshipInstance<vRelationship>>("r") 
     .Results; 

執行請求時收到意想不到的HTTP狀態。

的查詢是:

START n1=node({p0}), n2=node({p1}) 
MATCH n1-[r:COLLABORATES_WITH]->n2 
RETURN r 

響應狀態是: 500開發商:安德烈斯聲稱:意外穿越狀態遇到

從Neo4j的響應(其中可能包含有用的細節!)是:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> 
<title>Error 500 Developer: Andres claims that: Unexpected traversal state  encountered</title> 

</head> 
<body><h2>HTTP ERROR 500</h2> 
<p>Problem accessing /db/data/cypher. Reason: 
Developer: Andres claims that: Unexpected traversal state encountered</pre></p><h3> 

造成的:

</h3><pre>org.neo4j.helpers.ThisShouldNotHappenError: Developer: Andres claims that: Unexpected traversal state encountered 
at org.neo4j.cypher.internal.pipes.matching.BidirectionalTraversalMatcher$StepCollisionDetector.includePath(BidirectionalTraversalMatcher.scala:101) 
at org.neo4j.kernel.StandardBranchCollisionDetector.evaluate(StandardBranchCollisionDetector.java:74) 
at org.neo4j.kernel.StandardBranchCollisionDetector.evaluate(StandardBranchCollisionDetector.java:37) 
at org.neo4j.kernel.impl.traversal.BidirectionalTraverserIterator.fetchNextOrNull(BidirectionalTraverserIterator.java:157) 
at org.neo4j.kernel.impl.traversal.BidirectionalTraverserIterator.fetchNextOrNull(BidirectionalTraverserIterator.java:41) 
at org.neo4j.helpers.collection.PrefetchingIterator.hasNext(PrefetchingIterator.java:55) 
at scala.collection.JavaConversions$JIteratorWrapper.hasNext(JavaConversions.scala:574) 
at scala.collection.Iterator$$anon$21.hasNext(Iterator.scala:371) 
at scala.collection.Iterator$$anon$21.hasNext(Iterator.scala:371) 
at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:334) 
at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:334) 
at org.neo4j.cypher.PipeExecutionResult.hasNext(PipeExecutionResult.scala:138) 
at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:334) 
at scala.collection.JavaConversions$IteratorWrapper.hasNext(JavaConversions.scala:562) 
at org.neo4j.helpers.collection.ExceptionHandlingIterable$1.hasNext(ExceptionHandlingIterable.java:59) 
at org.neo4j.helpers.collection.IteratorWrapper.hasNext(IteratorWrapper.java:42) 
at org.neo4j.server.rest.repr.ListRepresentation.serialize(ListRepresentation.java:58) 
at org.neo4j.server.rest.repr.Serializer.serialize(Serializer.java:75) 
at org.neo4j.server.rest.repr.MappingSerializer.putList(MappingSerializer.java:61) 
at org.neo4j.server.rest.repr.CypherResultRepresentation.serialize(CypherResultRepresentation.java:50) 
at org.neo4j.server.rest.repr.MappingRepresentation.serialize(MappingRepresentation.java:42) 
at org.neo4j.server.rest.repr.OutputFormat$1.write(OutputFormat.java:133) 
at com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:71) 
at com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:57) 
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306) 
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1437) 
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.Server.handle(Server.java:326) 
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943) 
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 


<hr /><i><small>Powered by Jetty://</small></i><br/>             


</body> 

</html> 

回答

0

你可以試着在shell中運行這個,看看Relationship-Type COLLABORATES_WITH出現兩次嗎?

eval db.getRelationshipTypes()

+0

這種關係只發生一次。 的Neo4j-SH(0)$ EVAL db.getRelationshipTypes() ==> [採用,IS_IN,AWARDED_TO_PERSON,HAS_A,基金,AWARDED_FOR,CARRIES_OUT,COLLABORATES_ON,COLLABORATES_WITH,AWARDED_TO_ORGANISATION,CO_FUNDS] 的Neo4j-SH(0)$ – user2330099 2013-04-29 07:38:49

2

的問題發生在Neo4j的1.8.2。升級到1.9RC1解決了這個問題。
謝謝大家的迴應。

+0

謝謝你的提示 – 2013-04-30 00:26:36