List<InterDatanodeProtocol> datanodeProxies =
new ArrayList<InterDatanodeProtocol>();
//check generation stamps
for(DatanodeID id : datanodeids) {
try {
InterDatanodeProtocol datanode;
if (getDNRegistrationForNS(namespaceId).equals(id)) {
LOG.info("Skipping IDNPP creation for local id " + id
+ " when recovering " + block);
datanode = this;
} else {
LOG.info("Creating IDNPP for non-local id " + id + " (dnReg="
+ getDNRegistrationForNS(namespaceId) + ") when recovering "
+ block);
datanode = DataNode.createInterDataNodeProtocolProxy(
id, getConf(), socketTimeout);
datanodeProxies.add(datanode);
}
throwIfAfterTime(deadline);
BlockRecoveryInfo info = datanode.startBlockRecovery(namespaceId, block);
if (info == null) {
LOG.info("No block metadata found for block " + block + " on datanode "
+ id);
continue;
}