Program: 125712
Project: 125712
Buggy source:
private static Set<JobInfo> getAllJobInfo(ProcessType ptype,JobInfo parentJobInfo,Set<JobInfo> jobInfos){
  if (ptype == null) {
    return jobInfos;
  }
  EList<NodeType> nodes=ptype.getNode();
  for (  NodeType node : nodes) {
    boolean activate=true;
    for (    Object o : node.getElementParameter()) {
      ElementParameterType param=(ElementParameterType)o;
      if ("String_Node_Str".equals(param.getName())) {
        activate="String_Node_Str".equals(param.getValue());
        break;
      }
    }
    if (!activate) {
      continue;
    }
    if ("String_Node_Str".equalsIgnoreCase(node.getComponentName())) {
      String jobIds=getParameterValue(node.getElementParameter(),"String_Node_Str");
      String jobContext=getParameterValue(node.getElementParameter(),"String_Node_Str");
      String jobVersion=getParameterValue(node.getElementParameter(),"String_Node_Str");
      String[] jobsArr=jobIds.split(ProcessorUtilities.COMMA);
      for (      String jobId : jobsArr) {
        if (StringUtils.isNotEmpty(jobId)) {
          ProcessItem processItem=ItemCacheManager.getProcessItem(jobId,jobVersion);
          if (processItem != null) {
            JobInfo jobInfo=new JobInfo(processItem,jobContext);
            if (!jobInfos.contains(jobInfo)) {
              jobInfos.add(jobInfo);
              jobInfo.setFatherJobInfo(parentJobInfo);
              getAllJobInfo(processItem.getProcess(),jobInfo,jobInfos);
            }
          }
        }
      }
    }
 else {
      if (PluginChecker.isJobLetPluginLoaded()) {
        IJobletProviderService service=(IJobletProviderService)GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
        if (service != null) {
          ProcessType jobletProcess=service.getJobletProcess(node);
          if (jobletProcess != null) {
            getAllJobInfo(jobletProcess,parentJobInfo,jobInfos);
          }
        }
      }
    }
  }
  if (!parentJobInfo.isTestContainer() && GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
    ITestContainerProviderService testContainerService=(ITestContainerProviderService)GlobalServiceRegister.getDefault().getService(ITestContainerProviderService.class);
    if (testContainerService != null) {
      List<ProcessItem> testsItems=testContainerService.getAllTestContainers(parentJobInfo.getProcessItem());
      for (      ProcessItem testItem : testsItems) {
        ProcessType testProcess=testContainerService.getTestContainerProcess(testItem);
        if (testItem.getProcess() == null) {
          testItem.setProcess(testProcess);
        }
        if (testProcess == null) {
          log.warn(Messages.getString("String_Node_Str"));
          continue;
        }
        JobInfo jobInfo=new JobInfo(testItem,testProcess.getDefaultContext());
        jobInfo.setTestContainer(true);
        jobInfos.add(jobInfo);
        jobInfo.setFatherJobInfo(parentJobInfo);
      }
    }
  }
  return jobInfos;
}

Fixed version (ground truth):
private static Set<JobInfo> getAllJobInfo(ProcessType ptype,JobInfo parentJobInfo,Set<JobInfo> jobInfos){
  if (ptype == null) {
    return jobInfos;
  }
  EList<NodeType> nodes=ptype.getNode();
  for (  NodeType node : nodes) {
    boolean activate=true;
    for (    Object o : node.getElementParameter()) {
      ElementParameterType param=(ElementParameterType)o;
      if ("String_Node_Str".equals(param.getName())) {
        activate="String_Node_Str".equals(param.getValue());
        break;
      }
    }
    if (!activate) {
      continue;
    }
    if ("String_Node_Str".equalsIgnoreCase(node.getComponentName())) {
      String jobIds=getParameterValue(node.getElementParameter(),"String_Node_Str");
      String jobContext=getParameterValue(node.getElementParameter(),"String_Node_Str");
      String jobVersion=getParameterValue(node.getElementParameter(),"String_Node_Str");
      String[] jobsArr=jobIds.split(ProcessorUtilities.COMMA);
      for (      String jobId : jobsArr) {
        if (StringUtils.isNotEmpty(jobId)) {
          ProcessItem processItem=ItemCacheManager.getProcessItem(jobId,jobVersion);
          if (processItem != null) {
            JobInfo jobInfo=new JobInfo(processItem,jobContext);
            if (!jobInfos.contains(jobInfo)) {
              jobInfos.add(jobInfo);
              jobInfo.setFatherJobInfo(parentJobInfo);
              getAllJobInfo(processItem.getProcess(),jobInfo,jobInfos);
            }
          }
        }
      }
    }
 else {
      if (PluginChecker.isJobLetPluginLoaded()) {
        IJobletProviderService service=(IJobletProviderService)GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
        if (service != null) {
          ProcessType jobletProcess=service.getJobletProcess(node);
          if (jobletProcess != null) {
            getAllJobInfo(jobletProcess,parentJobInfo,jobInfos);
          }
        }
      }
    }
  }
  if (!parentJobInfo.isTestContainer() && GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
    ITestContainerProviderService testContainerService=(ITestContainerProviderService)GlobalServiceRegister.getDefault().getService(ITestContainerProviderService.class);
    if (testContainerService != null) {
      List<ProcessItem> testsItems=testContainerService.getTestContainersByVersion(parentJobInfo.getProcessItem());
      for (      ProcessItem testItem : testsItems) {
        ProcessType testProcess=testContainerService.getTestContainerProcess(testItem);
        if (testItem.getProcess() == null) {
          testItem.setProcess(testProcess);
        }
        if (testProcess == null) {
          log.warn(Messages.getString("String_Node_Str"));
          continue;
        }
        JobInfo jobInfo=new JobInfo(testItem,testProcess.getDefaultContext());
        jobInfo.setTestContainer(true);
        jobInfos.add(jobInfo);
        jobInfo.setFatherJobInfo(parentJobInfo);
      }
    }
  }
  return jobInfos;
}