X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FFrameworkTasks%2Forg%2Ftianocore%2Fframework%2Ftasks%2FTool.java;h=17e6298e003cac3bb8f7a0e4097837ef6e14c6fb;hp=a7d28f5e7f9e7578248553c7cb7bf81061225ce2;hb=c493be6c9d2829c73e2e884846d098d955738f62;hpb=8554faeb7d9dc858c56d6cdfc0e449b152ce52d7 diff --git a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java index a7d28f5e7f..17e6298e00 100644 --- a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java +++ b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Random; import org.apache.tools.ant.BuildException; import org.tianocore.common.logger.EdkLog; @@ -36,7 +37,7 @@ public class Tool implements EfiDefine, Section { private Input inputFiles = new Input(); private Input tempInputFile = new Input(); private String outputPath; - private File outputFile ; + private String outputFileName ; private List
gensectList = new ArrayList
(); /** Call extern tool @@ -56,7 +57,7 @@ public class Tool implements EfiDefine, Section { /// /// check if file exist /// - //File OutputFile = new File (this.outPutFileName); + File outputFile = new File (this.outputFileName); if (!outputFile.exists()) { throw new BuildException("The file " + outputFile.getPath() + " does not exist!\n"); } @@ -133,19 +134,25 @@ public class Tool implements EfiDefine, Section { catch (BuildException e) { EdkLog.log(e.getMessage()); throw new BuildException ("GenSection failed at Tool!"); - } - Do.close(); + } finally { + if (Do != null){ + Do.close(); + } + + } this.tempInputFile.insFile(outputFile.getPath()); } } catch (IOException e){ throw new BuildException ("Gensection failed at tool!"); - } + } try { - outputFile = File.createTempFile("temp", null, new File(outputPath)); + Random ran = new Random(9999); + this.outputFileName = "Temp" + ran.nextInt(); argument = toolArgList + inputFiles.toStringWithSinglepPrefix(" -i ") - + tempInputFile.toString(" ")+ " -o " + outputFile.getPath(); + + tempInputFile.toString(" ")+ " -o " + outputFileName; EdkLog.log(this, EdkLog.EDK_VERBOSE, command + " " + argument); + EdkLog.log(this, EdkLog.EDK_INFO, this.outputFileName); /// /// execute command line /// @@ -158,8 +165,7 @@ public class Tool implements EfiDefine, Section { file.delete(); } } - } catch (Exception e) { - EdkLog.log(e.getMessage()); + } catch (Exception e) { EdkLog.log(e.getMessage()); throw new BuildException("Execution of externalTool task failed!\n"); } }