HDFS-12789. [READ] Image generation tool does not close an opened stream

This commit is contained in:
Virajith Jalaparti 2017-11-08 10:28:50 -08:00 committed by Chris Douglas
parent c293cc8e9b
commit 87dc026bee

View File

@ -165,16 +165,23 @@ public ImageWriter(Options opts) throws IOException {
// create directory and inode sections as side-files.
// The details are written to files to avoid keeping them in memory.
dirsTmp = File.createTempFile("fsimg_dir", null);
dirsTmp.deleteOnExit();
dirs = beginSection(new FileOutputStream(dirsTmp));
FileOutputStream dirsTmpStream = null;
try {
dirsTmp = File.createTempFile("fsimg_dir", null);
dirsTmp.deleteOnExit();
dirsTmpStream = new FileOutputStream(dirsTmp);
dirs = beginSection(dirsTmpStream);
} catch (IOException e) {
IOUtils.cleanupWithLogger(null, raw, dirsTmpStream);
throw e;
}
try {
inodesTmp = File.createTempFile("fsimg_inode", null);
inodesTmp.deleteOnExit();
inodes = new FileOutputStream(inodesTmp);
} catch (IOException e) {
// appropriate to close raw?
IOUtils.cleanup(null, raw, dirs);
IOUtils.cleanupWithLogger(null, raw, dirsTmpStream, dirs);
throw e;
}