[ https://issues.apache.org/jira/browse/GIRAPH-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173924#comment-13173924 ]
Hudson commented on GIRAPH-113: ------------------------------- Integrated in Giraph-trunk-Commit #56 (See [https://builds.apache.org/job/Giraph-trunk-Commit/56/]) GIRAPH-113: Change cast to Vertex used in prepareSuperstep() to BasicVertex. (humming80 via aching) aching : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1221634 Files : * /incubator/giraph/trunk/CHANGELOG * /incubator/giraph/trunk/src/main/java/org/apache/giraph/comm/BasicRPCCommunications.java > Change cast to Vertex used in prepareSuperstep() to BasicVertex > --------------------------------------------------------------- > > Key: GIRAPH-113 > URL: https://issues.apache.org/jira/browse/GIRAPH-113 > Project: Giraph > Issue Type: Bug > Reporter: Yuanyuan Tian > Assignee: Avery Ching > Priority: Minor > Attachments: GIRAPH-113.patch > > > Hi, > I decided to use LongDoubleFloatDoubleVertex in a graph algorithm because it > uses more compact and efficient mahout collections. However I run into an > error when running the algorithm: > java.lang.ClassCastException: > org.apache.giraph.graph.LongDoubleFloatDoubleVertex cannot be cast to > org.apache.giraph.graph.Vertex > at > org.apache.giraph.comm.BasicRPCCommunications.prepareSuperstep(BasicRPCCommunications.java:1016) > at > org.apache.giraph.graph.BspServiceWorker.startSuperstep(BspServiceWorker.java:843) > at org.apache.giraph.graph.GraphMapper.map(GraphMapper.java:569) > at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:728) > ... 7 more > Basically, the problem is that in BasicRPCCommunications.prepareSuperStep(), > the LongDoubleFloatDoubleVertex are cast to Vertex in the following code > fragment. But LongDoubleFloatDoubleVertex inherits from BasicVertex instead > of Vertex. > if (vertex != null) { > ((MutableVertex<I, V, E, M>) vertex).setVertexId(vertexIndex); > partition.putVertex((Vertex<I, V, E, M>) vertex); > } else if (originalVertex != null) { > partition.removeVertex(originalVertex.getVertexId()); > } > I did a simple change: cast LongDoubleFloatDoubleVertex to BasicVertex. The > problem went away, and the algorithm finished without any error. But I am not > sure this change has any implication to other parts of the code. So, I hope > to get some comments from the Giraph developers. > if (vertex != null) { > ((MutableVertex<I, V, E, M>) vertex).setVertexId(vertexIndex); > partition.putVertex((BasicVertex<I, V, E, M>) vertex); > } else if (originalVertex != null) { > partition.removeVertex(originalVertex.getVertexId()); > } -- 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