Program: 118199
Project: 118199
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(),ComponentCategory.CATEGORY_4_DI.getName());
  if (node.getModulesNeeded().size() > 0 && !node.getComponent().getName().equals("String_Node_Str")) {
    for (    ModuleNeeded module : node.getModulesNeeded()) {
      if (module.isRequired(node.getElementParameters())) {
        Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE,ComponentCategory.CATEGORY_4_DI.getName()),process);
        libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
        NodeContainer nc=process.loadNodeContainer(libNode1,false);
        process.addNodeContainer(nc);
      }
    }
  }
 else {
    if (node.getComponent().getName().equals("String_Node_Str") || 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,ComponentCategory.CATEGORY_4_DI.getName()),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> generatingNodes=originalProcess.getGeneratingNodes();
      for (      INode node : generatingNodes) {
        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");
  String createStatament="String_Node_Str";
  String systemProperty="String_Node_Str";
  if (info.isHive()) {
    createStatament="String_Node_Str";
    systemProperty="String_Node_Str" + info.getJobTracker() + "String_Node_Str"+ "String_Node_Str"+ info.getNameNode()+ "String_Node_Str";
    if (info.getThrifturi() != null) {
      systemProperty=systemProperty + "String_Node_Str" + "String_Node_Str"+ info.getThrifturi()+ "String_Node_Str"+ "String_Node_Str";
    }
  }
  EDatabaseTypeName dbType=EDatabaseTypeName.JAVADB_EMBEDED.getTypeFromDbType(info.getDbType());
  if (EDatabaseTypeName.JAVADB_EMBEDED.equals(dbType)) {
    IElementParameter dbPathElement=node.getElementParameter("String_Node_Str");
    if (dbPathElement != null) {
      String derbyPath=dbPathElement.getValue().toString().replace("String_Node_Str","String_Node_Str").trim();
      systemProperty=systemProperty + "String_Node_Str" + derbyPath+ "String_Node_Str";
    }
  }
  if (EDatabaseTypeName.SQLITE.getXmlName().equals(info.getDbType())) {
    createStatament="String_Node_Str";
  }
  if (ConnectionUtils.isVertica(info.getUrl())) {
    createStatament="String_Node_Str";
  }
  codeStart=systemProperty + "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"+ createStatament+ "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";
  codeMain="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";
  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(),ComponentCategory.CATEGORY_4_DI.getName());
  if (node.getModulesNeeded().size() > 0 && !node.getComponent().getName().equals("String_Node_Str")) {
    for (    ModuleNeeded module : node.getModulesNeeded()) {
      if (module.isRequired(node.getElementParameters())) {
        Node libNode1=new Node(ComponentsFactoryProvider.getInstance().get(LIB_NODE,ComponentCategory.CATEGORY_4_DI.getName()),process);
        libNode1.setPropertyValue("String_Node_Str","String_Node_Str" + module.getModuleName() + "String_Node_Str");
        NodeContainer nc=process.loadNodeContainer(libNode1,false);
        process.addNodeContainer(nc);
      }
    }
  }
 else {
    if (node.getComponent().getName().equals("String_Node_Str") || 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,ComponentCategory.CATEGORY_4_DI.getName()),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> generatingNodes=originalProcess.getGeneratingNodes();
      for (      INode node : generatingNodes) {
        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");
  String createStatament="String_Node_Str";
  String systemProperty="String_Node_Str";
  if (info.isHive()) {
    createStatament="String_Node_Str";
    systemProperty="String_Node_Str" + info.getJobTracker() + "String_Node_Str"+ "String_Node_Str"+ info.getNameNode()+ "String_Node_Str";
    if (info.getThrifturi() != null) {
      systemProperty=systemProperty + "String_Node_Str" + "String_Node_Str"+ info.getThrifturi()+ "String_Node_Str"+ "String_Node_Str";
    }
  }
  EDatabaseTypeName dbType=EDatabaseTypeName.JAVADB_EMBEDED.getTypeFromDbType(info.getDbType());
  if (EDatabaseTypeName.JAVADB_EMBEDED.equals(dbType)) {
    IElementParameter dbPathElement=node.getElementParameter("String_Node_Str");
    if (dbPathElement != null) {
      String derbyPath=dbPathElement.getValue().toString().replace("String_Node_Str","String_Node_Str").trim();
      systemProperty=systemProperty + "String_Node_Str" + derbyPath+ "String_Node_Str";
    }
  }
  if (EDatabaseTypeName.SQLITE.getXmlName().equals(info.getDbType())) {
    createStatament="String_Node_Str";
  }
  if (ConnectionUtils.isVertica(info.getUrl())) {
    createStatament="String_Node_Str";
  }
  if (EDatabaseTypeName.GENERAL_JDBC.getXmlName().equals(info.getDbType()) && "String_Node_Str".equals(info.getDriverClassName()) || EDatabaseTypeName.SAPHana.getXmlName().equals(info.getDbType())) {
    createStatament="String_Node_Str";
  }
  codeStart=systemProperty + "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"+ createStatament+ "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";
  codeMain="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";
  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));
}