[ 
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)

Reply via email to