int oldNextLocation = nextLocation;
// First search for parity without stripe store
while (nextLocation < Codec.getCodecs().size()) {
try {
int idx = nextLocation++;
Codec codec = Codec.getCodecs().get(idx);
if (!parityFilePairs.containsKey(codec.id)) {
parityFilePairs.put(codec.id, ParityFilePair.getParityFile(codec,
srcStat, this.innerConf));
}
DecoderInputStream recoveryStream =
RaidNode.unRaidCorruptInputStream(innerConf, path,
codec, parityFilePairs.get(codec.id), lostBlock.getBlock(),
blockSize, offset, limit, false);
if (null != recoveryStream) {
return recoveryStream;
}
} catch (Exception e) {
LOG.info("Ignoring error in using alternate path " + path, e);
}
}
// Second look up in the stripe store for dir-raid
nextLocation = oldNextLocation;
while (nextLocation < Codec.getCodecs().size()) {
try {
int idx = nextLocation++;
Codec codec = Codec.getCodecs().get(idx);
if (!codec.isDirRaid)
continue;
DecoderInputStream recoveryStream =
RaidNode.unRaidCorruptInputStream(innerConf, path,
codec, parityFilePairs.get(idx), lostBlock.getBlock(),