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 Priority: Minor 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