diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java index 0a3b269..ce8d220 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java @@ -571,12 +571,18 @@ private void deleteFile(Path deletePath) throws Exception { } private byte[] readFile(Path inputPath, long len) throws Exception { - FSDataInputStream fsIn = fs.open(inputPath); - // state data will not be that "long" - byte[] data = new byte[(int)len]; - fsIn.readFully(data); - fsIn.close(); - return data; + FSDataInputStream fsIn = null; + try { + fsIn = fs.open(inputPath); + // state data will not be that "long" + byte[] data = new byte[(int) len]; + fsIn.readFully(data); + return data; + } finally { + if (fsIn != null) { + fsIn.close(); + } + } } /* @@ -590,10 +596,15 @@ private void writeFile(Path outputPath, byte[] data) throws Exception { FSDataOutputStream fsOut = null; // This file will be overwritten when app/attempt finishes for saving the // final status. - fsOut = fs.create(tempPath, true); - fsOut.write(data); - fsOut.close(); - fs.rename(tempPath, outputPath); + try { + fsOut = fs.create(tempPath, true); + fsOut.write(data); + fs.rename(tempPath, outputPath); + } finally { + if (fsOut != null) { + fsOut.close(); + } + } } /*