Modify GenFfsFileTask.
[mirror_edk2.git] / Tools / Source / FrameworkTasks / org / tianocore / framework / tasks / GenFfsFileTask.java
index cbe20f0..4cbbfab 100644 (file)
@@ -150,7 +150,6 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes {
         if (this.ffsFileType.equals("")) {\r
             throw new BuildException ("Must set ffsFileType!\n");\r
         }\r
-\r
         //\r
         //  Create ffs file. File name = FfsFileGuid + BaseName + ffsSuffix.\r
         //  If outputDir's value was set,  file will output to the outputDir.\r
@@ -169,7 +168,16 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes {
 \r
         String ffsFilePath = outputPath + this.ffsFileGuid + '-' + this.baseName + ffsSuffix;\r
         File ffsFile = new File (ffsFilePath);\r
-        genFfs(ffsFile);\r
+        try{\r
+            genFfs(ffsFile);\r
+        }catch (BuildException e){\r
+            if (ffsFile != null && ffsFile.exists()){\r
+                ffsFile.deleteOnExit();\r
+            }\r
+            throw new BuildException(e.getMessage());\r
+            \r
+        }\r
+        \r
     }   \r
 \r
     /**\r
@@ -742,7 +750,7 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes {
        @param ffsFile          Name of FFS file.\r
        @param isOrg            Flag to indicate generate ORG ffs file or not.\r
     **/\r
-    private void genFfs(File ffsFile) {\r
+    private void genFfs(File ffsFile) throws BuildException {\r
         Section           sect;\r
         int               fileSize;\r
         int               fileDataSize;\r
@@ -772,6 +780,9 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes {
                     //\r
                     sect.toBuffer((DataOutputStream)dataBuffer);\r
                 } catch (Exception e) {\r
+                    if (dataBuffer != null){\r
+                        dataBuffer.close();\r
+                    }\r
                     throw new BuildException (e.getMessage());\r
                 }\r
             }\r