Program: 121872
Project: 121872
Buggy source:
private void buildProcess(){
  process=new Process(property);
  process.getContextManager().getListContext().addAll(node.getProcess().getContextManager().getListContext());
  process.getContextManager().setDefaultContext(this.selectContext);
  outputComponent=ComponentsFactoryProvider.getInstance().get(EDatabaseComponentName.FILEDELIMITED.getOutPutComponentName());
  if (node.getComponent().getModulesNeeded().size() > 0) {
    for (    ModuleNeeded module : node.getComponent().getModulesNeeded()) {
      if (module.isRequired(node.getElementParameters())) {
        Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
        libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
        NodeContainer nc=null;
        if (libNode1.isJoblet()) {
          nc=new JobletContainer(libNode1);
        }
 else {
          nc=new NodeContainer(libNode1);
        }
        process.addNodeContainer(nc);
      }
    }
  }
 else {
    if (node.getComponent().getName().equals("String_Node_Str")) {
      List<String> drivers=EDatabaseVersion4Drivers.getDrivers(info.getTrueDBTypeForJDBC(),info.getDbVersion());
      String moduleNeedName="String_Node_Str";
      Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
      if (drivers.size() > 0) {
        moduleNeedName=drivers.get(0).toString();
        libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + moduleNeedName + "String_Node_Str");
      }
      process.addNodeContainer(new NodeContainer(libNode1));
    }
  }
  for (  IElementParameter param : node.getElementParameters()) {
    List<ModuleNeeded> neededLibraries=new ArrayList<ModuleNeeded>();
    JavaProcessUtil.findMoreLibraries(process,neededLibraries,param,true);
    if (param.getFieldType().equals(EParameterFieldType.MODULE_LIST)) {
      if (!"String_Node_Str".equals(param.getValue())) {
        String moduleValue=(String)param.getValue();
        neededLibraries.add(new ModuleNeeded(null,moduleValue,null,true));
      }
      if (param.isShow(node.getElementParameters())) {
        JavaProcessUtil.findMoreLibraries(process,neededLibraries,param,true);
      }
 else {
        JavaProcessUtil.findMoreLibraries(process,neededLibraries,param,false);
      }
    }
    for (    ModuleNeeded module : neededLibraries) {
      Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
      libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
      process.addNodeContainer(new NodeContainer(libNode1));
    }
  }
  for (  ModuleNeeded module : outputComponent.getModulesNeeded()) {
    Node libNode2=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
    libNode2.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
    process.addNodeContainer(new NodeContainer(libNode2));
  }
  int fetchSize=maximumRowsToPreview;
  if (maximumRowsToPreview > 1000) {
    fetchSize=1000;
  }
  String codeStart, codeMain, codeEnd;
  temppath=buildTempCSVFilename();
  memoSQL=memoSQL.replace("String_Node_Str","String_Node_Str");
  codeStart="String_Node_Str" + info.getDriverClassName() + "String_Node_Str"+ "String_Node_Str"+ info.getUrl()+ "String_Node_Str"+ "String_Node_Str"+ info.getUsername()+ "String_Node_Str"+ info.getPwd()+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ fetchSize+ "String_Node_Str"+ "String_Node_Str"+ memoSQL+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ temppath+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  codeMain="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  codeEnd="String_Node_Str" + "String_Node_Str" + maximumRowsToPreview + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  IComponent component=null;
switch (LanguageManager.getCurrentLanguage()) {
case JAVA:
    component=ComponentsFactoryProvider.getInstance().get("String_Node_Str");
  break;
case PERL:
default :
component=ComponentsFactoryProvider.getInstance().get("String_Node_Str");
break;
}
Node flexNode=new Node(component,process);
flexNode.setPropertyValue("String_Node_Str",codeStart);
flexNode.setPropertyValue("String_Node_Str",codeMain);
flexNode.setPropertyValue("String_Node_Str",codeEnd);
process.addNodeContainer(new NodeContainer(flexNode));
}

Fixed version (ground truth):
private void buildProcess(){
  process=new Process(property);
  process.getContextManager().getListContext().addAll(node.getProcess().getContextManager().getListContext());
  process.getContextManager().setDefaultContext(this.selectContext);
  outputComponent=ComponentsFactoryProvider.getInstance().get(EDatabaseComponentName.FILEDELIMITED.getOutPutComponentName());
  if (node.getComponent().getModulesNeeded().size() > 0) {
    for (    ModuleNeeded module : node.getComponent().getModulesNeeded()) {
      if (module.isRequired(node.getElementParameters())) {
        Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
        libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
        NodeContainer nc=null;
        if (libNode1.isJoblet()) {
          nc=new JobletContainer(libNode1);
        }
 else {
          nc=new NodeContainer(libNode1);
        }
        process.addNodeContainer(nc);
      }
    }
  }
 else {
    if (node.getComponent().getName().equals("String_Node_Str")) {
      List<String> drivers=EDatabaseVersion4Drivers.getDrivers(info.getTrueDBTypeForJDBC(),info.getDbVersion());
      String moduleNeedName="String_Node_Str";
      Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
      if (drivers.size() > 0) {
        moduleNeedName=drivers.get(0).toString();
        libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + moduleNeedName + "String_Node_Str");
      }
      process.addNodeContainer(new NodeContainer(libNode1));
    }
  }
  INode connectionNode=null;
  IElementParameter existConnection=node.getElementParameter("String_Node_Str");
  boolean useExistConnection=(existConnection == null ? false : (Boolean)existConnection.getValue());
  if (useExistConnection) {
    IElementParameter connector=node.getElementParameter("String_Node_Str");
    if (connector != null) {
      String connectorValue=connector.getValue().toString();
      List<? extends INode> graphicalNodes=originalProcess.getGraphicalNodes();
      for (      INode node : graphicalNodes) {
        if (node.getUniqueName().equals(connectorValue)) {
          connectionNode=node;
          break;
        }
      }
    }
  }
  List<ModuleNeeded> neededLibraries=new ArrayList<ModuleNeeded>();
  JavaProcessUtil.addNodeRelatedModules(process,neededLibraries,node);
  for (  ModuleNeeded module : neededLibraries) {
    Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
    libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
    process.addNodeContainer(new NodeContainer(libNode1));
  }
  if (connectionNode != null) {
    neededLibraries=new ArrayList<ModuleNeeded>();
    JavaProcessUtil.addNodeRelatedModules(process,neededLibraries,connectionNode);
    for (    ModuleNeeded module : neededLibraries) {
      Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
      libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
      process.addNodeContainer(new NodeContainer(libNode1));
    }
  }
  for (  ModuleNeeded module : outputComponent.getModulesNeeded()) {
    Node libNode2=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE),process);
    libNode2.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
    process.addNodeContainer(new NodeContainer(libNode2));
  }
  int fetchSize=maximumRowsToPreview;
  if (maximumRowsToPreview > 1000) {
    fetchSize=1000;
  }
  String codeStart, codeMain, codeEnd;
  temppath=buildTempCSVFilename();
  memoSQL=memoSQL.replace("String_Node_Str","String_Node_Str");
  codeStart="String_Node_Str" + info.getDriverClassName() + "String_Node_Str"+ "String_Node_Str"+ info.getUrl()+ "String_Node_Str"+ "String_Node_Str"+ info.getUsername()+ "String_Node_Str"+ info.getPwd()+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ fetchSize+ "String_Node_Str"+ "String_Node_Str"+ memoSQL+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ temppath+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  codeMain="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  codeEnd="String_Node_Str" + "String_Node_Str" + maximumRowsToPreview + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  IComponent component=null;
switch (LanguageManager.getCurrentLanguage()) {
case JAVA:
    component=ComponentsFactoryProvider.getInstance().get("String_Node_Str");
  break;
case PERL:
default :
component=ComponentsFactoryProvider.getInstance().get("String_Node_Str");
break;
}
Node flexNode=new Node(component,process);
flexNode.setPropertyValue("String_Node_Str",codeStart);
flexNode.setPropertyValue("String_Node_Str",codeMain);
flexNode.setPropertyValue("String_Node_Str",codeEnd);
process.addNodeContainer(new NodeContainer(flexNode));
}