Program: 59656
Project: 59656
Buggy source:
/** 
 * Dispatches assembly jobs to the specified environments
 * @param executionContext The environment to dispatch jobs to
 * @throws ProcessExecutionException Thrown if there is an issue during execution of an external process
 * @throws InterruptedException Thrown if user has interrupted the process during execution
 */
@Override public ExecutionResult execute(ExecutionContext executionContext) throws ProcessExecutionException, InterruptedException {
  try {
    StopWatch stopWatch=new StopWatch();
    stopWatch.start();
    Args args=this.getArgs();
    log.info("String_Node_Str" + args.getName() + "String_Node_Str");
    Assembler genericAssembler=args.getGenericAssembler();
    this.createSupportDirectories(genericAssembler);
    log.debug("String_Node_Str" + args.getOutputDir() + "String_Node_Str");
    jobResults.clear();
    Map<Integer,List<Integer>> ssResults=new HashMap<>();
    List<ExecutionResult> results=new ArrayList<>();
    for (    Integer cvg : args.getCoverageRange()) {
      ssResults.put(cvg,this.doSubsampling(genericAssembler.doesSubsampling(),cvg,args.getSelectedLibs(),args.isRunParallel()));
    }
    for (    Assembler assembler : args.getAssemblers()) {
      AbstractAssemblerArgs asmArgs=assembler.getAssemblerArgs();
      File outputDir=asmArgs.getOutputDir();
      String title=args.getName() + "String_Node_Str" + outputDir.getName();
      log.debug("String_Node_Str" + args.getTool() + "String_Node_Str"+ outputDir.getAbsolutePath()+ "String_Node_Str");
      if (outputDir.exists()) {
        FileUtils.deleteDirectory(outputDir);
      }
      outputDir.mkdirs();
      assembler.setup();
      ExecutionResult result=this.executeAssembler(assembler,args.getJobPrefix() + "String_Node_Str" + outputDir.getName(),ssResults.get(asmArgs.getDesiredCoverage()));
      result.setName(title);
      jobResults.add(result);
      this.createAssemblyLinks(assembler,args,title);
    }
    if (executionContext.usingScheduler() && !args.isMassParallel() && args.isRunParallel()) {
      log.info("String_Node_Str" + args.getName());
      this.conanExecutorService.executeScheduledWait(jobResults,args.getJobPrefix() + "String_Node_Str",ExitStatus.Type.COMPLETED_ANY,args.getJobPrefix() + "String_Node_Str",args.getOutputDir());
    }
    log.info("String_Node_Str" + args.getName() + "String_Node_Str");
    stopWatch.stop();
    this.taskResult=new DefaultTaskResult("String_Node_Str" + args.name,true,this.jobResults,stopWatch.getTime() / 1000L);
    return new DefaultExecutionResult(this.taskResult.getTaskName(),0,new String[]{},null,-1,new ResourceUsage(this.taskResult.getMaxMemUsage(),this.taskResult.getActualTotalRuntime(),this.taskResult.getTotalExternalCputime()));
  }
 catch (  IOException|ConanParameterException ioe) {
    throw new ProcessExecutionException(-1,ioe);
  }
}

Fixed version (ground truth):
/** 
 * Dispatches assembly jobs to the specified environments
 * @param executionContext The environment to dispatch jobs to
 * @throws ProcessExecutionException Thrown if there is an issue during execution of an external process
 * @throws InterruptedException Thrown if user has interrupted the process during execution
 */
@Override public ExecutionResult execute(ExecutionContext executionContext) throws ProcessExecutionException, InterruptedException {
  try {
    StopWatch stopWatch=new StopWatch();
    stopWatch.start();
    Args args=this.getArgs();
    log.info("String_Node_Str" + args.getName() + "String_Node_Str");
    Assembler genericAssembler=args.getGenericAssembler();
    this.createSupportDirectories(genericAssembler);
    log.debug("String_Node_Str" + args.getOutputDir() + "String_Node_Str");
    jobResults.clear();
    Map<Integer,List<Integer>> ssResults=new HashMap<>();
    for (    Integer cvg : args.getCoverageRange()) {
      ssResults.put(cvg,this.doSubsampling(genericAssembler.doesSubsampling(),cvg,args.getSelectedLibs(),args.isRunParallel()));
    }
    for (    Assembler assembler : args.getAssemblers()) {
      AbstractAssemblerArgs asmArgs=assembler.getAssemblerArgs();
      File outputDir=asmArgs.getOutputDir();
      String title=args.getName() + "String_Node_Str" + outputDir.getName();
      log.debug("String_Node_Str" + args.getTool() + "String_Node_Str"+ outputDir.getAbsolutePath()+ "String_Node_Str");
      if (outputDir.exists()) {
        FileUtils.deleteDirectory(outputDir);
      }
      outputDir.mkdirs();
      ExecutionResult result=this.executeAssembler(assembler,args.getJobPrefix() + "String_Node_Str" + outputDir.getName(),ssResults.get(asmArgs.getDesiredCoverage()));
      result.setName(title);
      jobResults.add(result);
      this.createAssemblyLinks(assembler,args,title);
    }
    if (executionContext.usingScheduler() && !args.isMassParallel() && args.isRunParallel()) {
      log.info("String_Node_Str" + args.getName());
      this.conanExecutorService.executeScheduledWait(jobResults,args.getJobPrefix() + "String_Node_Str",ExitStatus.Type.COMPLETED_ANY,args.getJobPrefix() + "String_Node_Str",args.getOutputDir());
    }
    log.info("String_Node_Str" + args.getName() + "String_Node_Str");
    stopWatch.stop();
    this.taskResult=new DefaultTaskResult("String_Node_Str" + args.name,true,this.jobResults,stopWatch.getTime() / 1000L);
    return new DefaultExecutionResult(this.taskResult.getTaskName(),0,new String[]{},null,-1,new ResourceUsage(this.taskResult.getMaxMemUsage(),this.taskResult.getActualTotalRuntime(),this.taskResult.getTotalExternalCputime()));
  }
 catch (  IOException|ConanParameterException ioe) {
    throw new ProcessExecutionException(-1,ioe);
  }
}