But isn't that line redundant, given that VertexResolver already takes
care of the id?

Anyway, VertexResolver itself looks a bit fragile or at least I find it
hard to follow: do all code paths that include a cast BasicVertex ->
MutableVertex guarantee that the vertex is mutable?
If not, the same issue will pop out there eventually.
Maybe we should be clearer on what is allowed to non-mutable graphs and
handle them separately (possibly throwing an exception instead of failing
the cast).

On 7/19/12 4:45 PM, "Eli Reisman" <[email protected]> wrote:

>Nice catch, this just happened to a user I have been working with, and we
>didn't realize why. I had another issue brought up by a 2nd user that may
>or may not have a JIRA, or this might the the perfect place to address it:
>
>If you are planning on executing a vertex that does not mutate the graph
>at
>all, but you do have data input that includes vertex id's and then a list
>of out edges per vertex, this code should handle the situation where the
>out-edges of one vertex in the data refer to a vertex that does not end up
>having any out-edges of its own, and therefore is not mentioned in the
>actual data list. such a vertex should be created (as it is in a mutable
>algorithm when an new out edge is created to a vertex that does not yet
>exist). The problem is like this:
>
>VERT_ID  EDGE_LIST
>1               3 4 57
>2               1 4
>3                4 2
>4                ...
>...
>7  (end of data)
>
>so 57 is mentioned as having an out edge, but there is no "line 57" in the
>input data. Does that make sense? The final graph we process is not
>mutable, algorithm doesn't mutate it, but we need to create 57 at the
>beginning before processing starts, by the time of super step 0.
>
>On Tue, Jul 10, 2012 at 5:40 AM, Sebastian Schelter (JIRA)
><[email protected]>wrote:
>
>> Sebastian Schelter created GIRAPH-245:
>> -----------------------------------------
>>
>>              Summary: BasicRPCCommunications fails with custom vertices
>>                  Key: GIRAPH-245
>>                  URL: https://issues.apache.org/jira/browse/GIRAPH-245
>>              Project: Giraph
>>           Issue Type: Bug
>>     Affects Versions: 0.2.0
>>             Reporter: Sebastian Schelter
>>
>>
>> BasicRPCCommunications assumes that every vertex is an instance of
>> MutableVertex in line 1265:
>>
>> {noformat}
>>       if (vertex != null) {
>>         ((MutableVertex<I, V, E, M>) vertex).setVertexId(vertexIndex);
>>         partition.putVertex(vertex);
>>       }
>> {noformat}
>>
>> For custom vertices that only extend BasicVertex, this code fails with a
>> ClassCastException
>>
>>
>>
>> --
>> This message is automatically generated by JIRA.
>> If you think it was sent incorrectly, please contact your JIRA
>> administrators:
>> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>> For more information on JIRA, see:
>>http://www.atlassian.com/software/jira
>>
>>
>>

Reply via email to