Program: 126440
Project: 126440
Buggy source:
/** 
 * DOC wzhang Comment method "setDatabaseType".
 * @param connection
 * @param node
 */
private static void setDatabaseType(DatabaseConnection connection,INode node){
  IElementParameter parameter=node.getElementParameter("String_Node_Str");
  if (parameter == null) {
    IElementParameter para=node.getElementParameter("String_Node_Str");
    if (para.getRepositoryValue().endsWith(EDatabaseTypeName.GREENPLUM.getProduct())) {
      connection.setDatabaseType(EDatabaseTypeName.GREENPLUM.getDisplayName());
      connection.setProductId(EDatabaseTypeName.GREENPLUM.getProduct());
    }
    if (para.getRepositoryValue().endsWith(EDatabaseTypeName.PLUSPSQL.getProduct())) {
      connection.setDatabaseType(EDatabaseTypeName.PLUSPSQL.getDisplayName());
      connection.setProductId(EDatabaseTypeName.PLUSPSQL.getProduct());
    }
    if (para.getRepositoryValue().endsWith(EDatabaseTypeName.GENERAL_JDBC.getProduct())) {
      connection.setDatabaseType(EDatabaseTypeName.GENERAL_JDBC.getDisplayName());
      connection.setProductId(EDatabaseTypeName.GENERAL_JDBC.getProduct());
    }
    if (para.getRepositoryValue().endsWith(EDatabaseTypeName.VERTICA.getProduct())) {
      connection.setDatabaseType(EDatabaseTypeName.VERTICA.getDisplayName());
      connection.setProductId(EDatabaseTypeName.VERTICA.getProduct());
    }
    return;
  }
 else   if (EDatabaseTypeName.MYSQL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.MYSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.MYSQL.getProduct());
  }
 else   if (EDatabaseTypeName.MSSQL.getXmlName().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.MSSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.MSSQL.getProduct());
  }
 else   if (EDatabaseTypeName.EXASOL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.EXASOL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.EXASOL.getProduct());
  }
 else   if (EDatabaseTypeName.PSQL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.PSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.PSQL.getProduct());
  }
 else   if (EDatabaseTypeName.PLUSPSQL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.PLUSPSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.PLUSPSQL.getProduct());
  }
 else   if (EDatabaseTypeName.IBMDB2.getProduct().equalsIgnoreCase(((String)parameter.getValue()).replace(' ','_'))) {
    connection.setDatabaseType(EDatabaseTypeName.IBMDB2.getDisplayName());
    connection.setProductId(EDatabaseTypeName.IBMDB2.getProduct());
  }
 else   if (EDatabaseTypeName.INGRES.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.INGRES.getDisplayName());
    connection.setProductId(EDatabaseTypeName.INGRES.getProduct());
  }
 else   if (EDatabaseTypeName.INTERBASE.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.INTERBASE.getDisplayName());
    connection.setProductId(EDatabaseTypeName.INTERBASE.getProduct());
  }
 else   if (EDatabaseTypeName.SQLITE.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.SQLITE.getDisplayName());
    connection.setProductId(EDatabaseTypeName.SQLITE.getProduct());
  }
 else   if (EDatabaseTypeName.FIREBIRD.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.FIREBIRD.getDisplayName());
    connection.setProductId(EDatabaseTypeName.FIREBIRD.getProduct());
  }
 else   if (EDatabaseTypeName.INFORMIX.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.INFORMIX.getDisplayName());
    connection.setProductId(EDatabaseTypeName.INFORMIX.getProduct());
  }
 else   if (EDatabaseTypeName.ACCESS.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.ACCESS.getDisplayName());
    connection.setProductId(EDatabaseTypeName.ACCESS.getProduct());
  }
 else   if (EDatabaseTypeName.TERADATA.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.TERADATA.getDisplayName());
    connection.setProductId(EDatabaseTypeName.TERADATA.getProduct());
  }
 else   if (EDatabaseTypeName.AS400.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.AS400.getDisplayName());
    connection.setProductId(EDatabaseTypeName.AS400.getProduct());
  }
 else   if (EDatabaseTypeName.VERTICA.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.VERTICA.getDisplayName());
    connection.setProductId(EDatabaseTypeName.VERTICA.getProduct());
  }
 else   if (EDatabaseTypeName.MAXDB.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.MAXDB.getDisplayName());
    connection.setProductId(EDatabaseTypeName.MAXDB.getProduct());
  }
 else   if (EDatabaseTypeName.PARACCEL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.PARACCEL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.PARACCEL.getProduct());
  }
 else   if (EDatabaseTypeName.REDSHIFT.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.REDSHIFT.getDisplayName());
    connection.setProductId(EDatabaseTypeName.REDSHIFT.getProduct());
  }
 else   if (EDatabaseTypeName.NETEZZA.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.NETEZZA.getDisplayName());
    connection.setProductId(EDatabaseTypeName.NETEZZA.getProduct());
  }
 else   if (((String)parameter.getValue()).toLowerCase().startsWith(EDatabaseTypeName.SYBASEASE.getProduct().toLowerCase())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.SYBASEASE.getDisplayName());
      connection.setProductId(EDatabaseTypeName.SYBASEASE.getProduct());
    }
    return;
  }
 else   if (EDatabaseTypeName.ORACLEFORSID.getProduct().equalsIgnoreCase((String)parameter.getValue()) || EDatabaseTypeName.ORACLEFORSID.getXmlName().equalsIgnoreCase((String)parameter.getValue()) || EDatabaseTypeName.ORACLESN.getXmlName().equalsIgnoreCase((String)parameter.getValue())|| EDatabaseTypeName.ORACLE_OCI.getXmlName().equalsIgnoreCase((String)parameter.getValue())|| EDatabaseTypeName.ORACLE_CUSTOM.getXmlName().equalsIgnoreCase((String)parameter.getValue())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue()) || "String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.ORACLESN.getDisplayName());
      connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue()) || "String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.ORACLEFORSID.getDisplayName());
      connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue()) || "String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.ORACLE_CUSTOM.getDisplayName());
      connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
    }
    return;
  }
 else   if (EDatabaseTypeName.HSQLDB_SERVER.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.HSQLDB_SERVER.getDisplayName());
      connection.setProductId(EDatabaseTypeName.HSQLDB_SERVER.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.HSQLDB_WEBSERVER.getDisplayName());
      connection.setProductId(EDatabaseTypeName.HSQLDB_WEBSERVER.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.HSQLDB_IN_PROGRESS.getDisplayName());
      connection.setProductId(EDatabaseTypeName.HSQLDB_IN_PROGRESS.getProduct());
    }
    return;
  }
 else   if (EDatabaseTypeName.JAVADB_EMBEDED.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.JAVADB_EMBEDED.getDisplayName());
      connection.setProductId(EDatabaseTypeName.JAVADB_EMBEDED.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.JAVADB_JCCJDBC.getDisplayName());
      connection.setProductId(EDatabaseTypeName.JAVADB_JCCJDBC.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.JAVADB_DERBYCLIENT.getDisplayName());
      connection.setProductId(EDatabaseTypeName.JAVADB_DERBYCLIENT.getProduct());
    }
    return;
  }
 else   if (node.getComponent().getName().startsWith("String_Node_Str") || node.getComponent().getName().startsWith("String_Node_Str")) {
    parameter=node.getElementParameter("String_Node_Str");
    if (parameter.getRepositoryValue().endsWith(EDatabaseTypeName.GODBC.getProduct())) {
      connection.setDatabaseType(EDatabaseTypeName.GODBC.getDisplayName());
      connection.setProductId(EDatabaseTypeName.GODBC.getProduct());
    }
  }
}

Fixed version (ground truth):
/** 
 * DOC wzhang Comment method "setDatabaseType".
 * @param connection
 * @param node
 */
private static void setDatabaseType(DatabaseConnection connection,INode node){
  IElementParameter parameter=node.getElementParameter("String_Node_Str");
  if (parameter == null) {
    IElementParameter para=node.getElementParameter("String_Node_Str");
    if (para != null) {
      if (para.getRepositoryValue().endsWith(EDatabaseTypeName.GREENPLUM.getProduct())) {
        connection.setDatabaseType(EDatabaseTypeName.GREENPLUM.getDisplayName());
        connection.setProductId(EDatabaseTypeName.GREENPLUM.getProduct());
      }
      if (para.getRepositoryValue().endsWith(EDatabaseTypeName.PLUSPSQL.getProduct())) {
        connection.setDatabaseType(EDatabaseTypeName.PLUSPSQL.getDisplayName());
        connection.setProductId(EDatabaseTypeName.PLUSPSQL.getProduct());
      }
      if (para.getRepositoryValue().endsWith(EDatabaseTypeName.GENERAL_JDBC.getProduct())) {
        connection.setDatabaseType(EDatabaseTypeName.GENERAL_JDBC.getDisplayName());
        connection.setProductId(EDatabaseTypeName.GENERAL_JDBC.getProduct());
      }
      if (para.getRepositoryValue().endsWith(EDatabaseTypeName.VERTICA.getProduct())) {
        connection.setDatabaseType(EDatabaseTypeName.VERTICA.getDisplayName());
        connection.setProductId(EDatabaseTypeName.VERTICA.getProduct());
      }
    }
    return;
  }
 else   if (EDatabaseTypeName.MYSQL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.MYSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.MYSQL.getProduct());
  }
 else   if (EDatabaseTypeName.MSSQL.getXmlName().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.MSSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.MSSQL.getProduct());
  }
 else   if (EDatabaseTypeName.EXASOL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.EXASOL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.EXASOL.getProduct());
  }
 else   if (EDatabaseTypeName.PSQL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.PSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.PSQL.getProduct());
  }
 else   if (EDatabaseTypeName.PLUSPSQL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.PLUSPSQL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.PLUSPSQL.getProduct());
  }
 else   if (EDatabaseTypeName.IBMDB2.getProduct().equalsIgnoreCase(((String)parameter.getValue()).replace(' ','_'))) {
    connection.setDatabaseType(EDatabaseTypeName.IBMDB2.getDisplayName());
    connection.setProductId(EDatabaseTypeName.IBMDB2.getProduct());
  }
 else   if (EDatabaseTypeName.INGRES.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.INGRES.getDisplayName());
    connection.setProductId(EDatabaseTypeName.INGRES.getProduct());
  }
 else   if (EDatabaseTypeName.INTERBASE.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.INTERBASE.getDisplayName());
    connection.setProductId(EDatabaseTypeName.INTERBASE.getProduct());
  }
 else   if (EDatabaseTypeName.SQLITE.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.SQLITE.getDisplayName());
    connection.setProductId(EDatabaseTypeName.SQLITE.getProduct());
  }
 else   if (EDatabaseTypeName.FIREBIRD.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.FIREBIRD.getDisplayName());
    connection.setProductId(EDatabaseTypeName.FIREBIRD.getProduct());
  }
 else   if (EDatabaseTypeName.INFORMIX.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.INFORMIX.getDisplayName());
    connection.setProductId(EDatabaseTypeName.INFORMIX.getProduct());
  }
 else   if (EDatabaseTypeName.ACCESS.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.ACCESS.getDisplayName());
    connection.setProductId(EDatabaseTypeName.ACCESS.getProduct());
  }
 else   if (EDatabaseTypeName.TERADATA.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.TERADATA.getDisplayName());
    connection.setProductId(EDatabaseTypeName.TERADATA.getProduct());
  }
 else   if (EDatabaseTypeName.AS400.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.AS400.getDisplayName());
    connection.setProductId(EDatabaseTypeName.AS400.getProduct());
  }
 else   if (EDatabaseTypeName.VERTICA.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.VERTICA.getDisplayName());
    connection.setProductId(EDatabaseTypeName.VERTICA.getProduct());
  }
 else   if (EDatabaseTypeName.MAXDB.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.MAXDB.getDisplayName());
    connection.setProductId(EDatabaseTypeName.MAXDB.getProduct());
  }
 else   if (EDatabaseTypeName.PARACCEL.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.PARACCEL.getDisplayName());
    connection.setProductId(EDatabaseTypeName.PARACCEL.getProduct());
  }
 else   if (EDatabaseTypeName.REDSHIFT.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.REDSHIFT.getDisplayName());
    connection.setProductId(EDatabaseTypeName.REDSHIFT.getProduct());
  }
 else   if (EDatabaseTypeName.NETEZZA.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    connection.setDatabaseType(EDatabaseTypeName.NETEZZA.getDisplayName());
    connection.setProductId(EDatabaseTypeName.NETEZZA.getProduct());
  }
 else   if (((String)parameter.getValue()).toLowerCase().startsWith(EDatabaseTypeName.SYBASEASE.getProduct().toLowerCase())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.SYBASEASE.getDisplayName());
      connection.setProductId(EDatabaseTypeName.SYBASEASE.getProduct());
    }
    return;
  }
 else   if (EDatabaseTypeName.ORACLEFORSID.getProduct().equalsIgnoreCase((String)parameter.getValue()) || EDatabaseTypeName.ORACLEFORSID.getXmlName().equalsIgnoreCase((String)parameter.getValue()) || EDatabaseTypeName.ORACLESN.getXmlName().equalsIgnoreCase((String)parameter.getValue())|| EDatabaseTypeName.ORACLE_OCI.getXmlName().equalsIgnoreCase((String)parameter.getValue())|| EDatabaseTypeName.ORACLE_CUSTOM.getXmlName().equalsIgnoreCase((String)parameter.getValue())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue()) || "String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.ORACLESN.getDisplayName());
      connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue()) || "String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.ORACLEFORSID.getDisplayName());
      connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue()) || "String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.ORACLE_CUSTOM.getDisplayName());
      connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
    }
    return;
  }
 else   if (EDatabaseTypeName.HSQLDB_SERVER.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.HSQLDB_SERVER.getDisplayName());
      connection.setProductId(EDatabaseTypeName.HSQLDB_SERVER.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.HSQLDB_WEBSERVER.getDisplayName());
      connection.setProductId(EDatabaseTypeName.HSQLDB_WEBSERVER.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.HSQLDB_IN_PROGRESS.getDisplayName());
      connection.setProductId(EDatabaseTypeName.HSQLDB_IN_PROGRESS.getProduct());
    }
    return;
  }
 else   if (EDatabaseTypeName.JAVADB_EMBEDED.getProduct().equalsIgnoreCase((String)parameter.getValue())) {
    parameter=node.getElementParameter("String_Node_Str");
    if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.JAVADB_EMBEDED.getDisplayName());
      connection.setProductId(EDatabaseTypeName.JAVADB_EMBEDED.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.JAVADB_JCCJDBC.getDisplayName());
      connection.setProductId(EDatabaseTypeName.JAVADB_JCCJDBC.getProduct());
    }
 else     if ("String_Node_Str".equals(parameter.getValue())) {
      connection.setDatabaseType(EDatabaseTypeName.JAVADB_DERBYCLIENT.getDisplayName());
      connection.setProductId(EDatabaseTypeName.JAVADB_DERBYCLIENT.getProduct());
    }
    return;
  }
 else   if (node.getComponent().getName().startsWith("String_Node_Str") || node.getComponent().getName().startsWith("String_Node_Str")) {
    parameter=node.getElementParameter("String_Node_Str");
    if (parameter.getRepositoryValue().endsWith(EDatabaseTypeName.GODBC.getProduct())) {
      connection.setDatabaseType(EDatabaseTypeName.GODBC.getDisplayName());
      connection.setProductId(EDatabaseTypeName.GODBC.getProduct());
    }
  }
}