[ https://issues.apache.org/jira/browse/TINKERPOP-1862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16311831#comment-16311831 ]
ASF GitHub Bot commented on TINKERPOP-1862: ------------------------------------------- GitHub user PBGraff opened a pull request: https://github.com/apache/tinkerpop/pull/770 TINKERPOP-1862 TinkerMessenger proper handling of Direction.BOTH This PR presents a fix for `TinkerMessenger` that handled `Direction.BOTH` by identifying the `Vertex` that is not the one receiving the message. In the case of self-loops, the same `Vertex` is still returned so these are handled properly. Note that self-loops cause messages to be sent/received twice since the `Edge` is both `IN` and `OUT`. You can merge this pull request into a Git repository by running: $ git pull https://github.com/PBGraff/tinkerpop TINKERPOP-1862 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tinkerpop/pull/770.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #770 ---- commit 70b74de41a288ea27f0cc6b89cba57d07c3bc3d0 Author: Graff, Philip B <philip.graff@...> Date: 2018-01-04T18:27:44Z TinkerMessenger proper handling of Direction.BOTH ---- > TinkerGraph VertexProgram message passing doesn't work properly when using > Direction.BOTH > ----------------------------------------------------------------------------------------- > > Key: TINKERPOP-1862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1862 > Project: TinkerPop > Issue Type: Bug > Components: process, tinkergraph > Affects Versions: 3.2.7 > Reporter: Philip Graff > > I think the messages are being sent properly in TinkerMessenger, but when I > call messenger.receiveMessages(), the vertex is getting messages from the > outVertex of their edges regardless of the edge direction. This is due to > line 71 of TinkerMessenger (linked below) which calls > Edge.vertices(direction).next(), thus getting the first result out of the > Vertex iterator. For IN or OUT, this isn't a problem. But for BOTH, following > line 124 of TinkerEdge (linked below), the outVertex is always returned > first. TinkerMessenger needs to be modified to return the correct vertex (I > think it's the one that != this.vertex). > https://github.com/apache/tinkerpop/blob/master/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessenger.java#L71 > https://github.com/apache/tinkerpop/blob/master/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerEdge.java#L124 -- This message was sent by Atlassian JIRA (v6.4.14#64029)