IOException {
IntWritable reusableVertexId = new IntWritable();
FloatWritable reusableMessage = new FloatWritable();
FloatWritable reusableCurrentMessage = new FloatWritable();
Int2FloatOpenHashMap partitionMap = map.get(partitionId);
synchronized (partitionMap) {
VertexIdMessageIterator<IntWritable, FloatWritable>
iterator = messages.getVertexIdMessageIterator();
while (iterator.hasNext()) {
iterator.next();
int vertexId = iterator.getCurrentVertexId().get();
float message = iterator.getCurrentMessage().get();
if (partitionMap.containsKey(vertexId)) {
reusableVertexId.set(vertexId);
reusableMessage.set(message);
reusableCurrentMessage.set(partitionMap.get(vertexId));
messageCombiner.combine(reusableVertexId, reusableCurrentMessage,
reusableMessage);
message = reusableCurrentMessage.get();
}
partitionMap.put(vertexId, message);
}
}
}