giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claudio Martella (JIRA)" <>
Subject [jira] [Commented] (GIRAPH-679) Edge e.getTargetVertexId() returns same instance
Date Tue, 04 Jun 2013 16:37:20 GMT


Claudio Martella commented on GIRAPH-679:

this is not a bug, but an expected behavior. see javadoc for Vertex.getEdges():

"Get a read-only view of the out-edges of this vertex. Note: edge objects returned by this
iterable may be invalidated as soon as the next element is requested. Thus, keeping a reference
to an edge almost always leads to undesired behavior."
> Edge e.getTargetVertexId() returns same instance
> ------------------------------------------------
>                 Key: GIRAPH-679
>                 URL:
>             Project: Giraph
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 1.1.0
>            Reporter: Byungnam Lim
> I was trying to remove all edges of each vertex in one superstep. Below is my code.
> for (Edge<LongWritable, FloatWritable> e : vertex.getEdges()) {
>      removeEdgesRequest(vertex.getId(), e.getTargetVertexId());
> }
> But it just removed only one edge in one superstep.
> I debugged and found e.getTargetVertexId() returns one same instances so that makes the
removedEdgeList.add() in VertexMutations class could not add the elements properly.
> By creating new LongWritable instance for targetVertexId parameter, I could remove all
edges in one superstep.
> But I'm doubt that I found that the Edge e also gets one same instance during 'for' loop.
Maybe the problem exists in vertex.getEdges() not e.getTargetVertexId().

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message