HDFS-12881. Output streams closed with IOUtils suppressing write errors. Contributed by Ajay Kumar

This commit is contained in:
Jason Lowe 2017-12-14 09:45:44 -06:00
parent 2564b4d07f
commit 80db744ee5
3 changed files with 13 additions and 4 deletions

View File

@ -1086,8 +1086,10 @@ static void computeChecksum(ReplicaInfo srcReplica, File dstMeta,
// calculate and write the last crc
checksum.calculateChunkedSums(data, 0, offset, crcs, 0);
metaOut.write(crcs, 0, 4);
metaOut.close();
metaOut = null;
} finally {
IOUtils.cleanup(null, metaOut);
IOUtils.closeStream(metaOut);
}
}

View File

@ -108,6 +108,8 @@ public static String getImageFileMD5IgnoringTxId(File imageFile)
try {
raf.seek(IMAGE_TXID_POS);
raf.writeLong(0);
raf.close();
raf = null;
} finally {
IOUtils.closeStream(raf);
}
@ -542,9 +544,12 @@ public static void corruptVersionFile(File versionFile, String key, String value
out = new FileOutputStream(versionFile);
props.store(out, null);
out.close();
out = null;
} finally {
IOUtils.cleanup(null, fis, out);
IOUtils.closeStream(fis);
IOUtils.closeStream(out);
}
}

View File

@ -340,9 +340,11 @@ private void copyPartOfFile(File src, File dest) throws IOException {
in = new FileInputStream(src);
out = new FileOutputStream(dest);
in.getChannel().transferTo(0, MAX_BYTES, out.getChannel());
out.close();
out = null;
} finally {
IOUtils.cleanup(null, in);
IOUtils.cleanup(null, out);
IOUtils.closeStream(in);
IOUtils.closeStream(out);
}
}