Program: 138100
Project: 138100
Buggy source:
/** 
 * DOC bZhou Comment method "fillParametersFromURL".
 * @param dbconn
 * @param s
 */
private void fillParametersFromURL(DatabaseConnection dbconn,String[] s){
  String selection=s[0];
  int index=1;
  if (s[index] != "String_Node_Str") {
    if (selection.equals(EDatabaseConnTemplate.GODBC.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.MSODBC.getDBDisplayName())) {
      dbconn.setDatasourceName(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.SQLITE.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.ACCESS.getDBDisplayName())) {
      dbconn.setFileFieldName(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.JAVADB_EMBEDED.getDBDisplayName())) {
      dbconn.setSID(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.HSQLDB_IN_PROGRESS.getDBDisplayName())) {
      dbconn.setDBRootPath(s[index]);
    }
 else {
      dbconn.setServerName(s[index]);
    }
  }
  index=2;
  if (s[index] != "String_Node_Str") {
    if (selection.equals(EDatabaseConnTemplate.INTERBASE.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.TERADATA.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.AS400.getDBDisplayName())|| selection.equals(EDatabaseConnTemplate.HSQLDB_IN_PROGRESS.getDBDisplayName())) {
      dbconn.setSID(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.FIREBIRD.getDBDisplayName())) {
      dbconn.setFileFieldName(s[index]);
    }
 else {
      dbconn.setPort(s[index]);
    }
  }
  index=3;
  if (s[index] != "String_Node_Str") {
    if (selection.equals(EDatabaseConnTemplate.AS400.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.MYSQL.getDBDisplayName())) {
      dbconn.setSID(s[index]);
    }
  }
  index=4;
  if (s[index] != "String_Node_Str") {
    if (selection.equals(EDatabaseConnTemplate.INFORMIX.getDBDisplayName())) {
      dbconn.setDatasourceName(s[index]);
    }
 else {
      dbconn.setAdditionalParams(s[index]);
    }
  }
  index=5;
  if (s[index] != "String_Node_Str") {
    dbconn.setAdditionalParams(s[index]);
  }
}

Fixed version (ground truth):
/** 
 * DOC bZhou Comment method "fillParametersFromURL".
 * @param dbconn
 * @param s
 */
private void fillParametersFromURL(DatabaseConnection dbconn,String[] s){
  String selection=s[0];
  int index=1;
  if (s[index] != "String_Node_Str") {
    if (selection.equals(EDatabaseConnTemplate.GODBC.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.MSODBC.getDBDisplayName())) {
      dbconn.setDatasourceName(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.SQLITE.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.ACCESS.getDBDisplayName())) {
      dbconn.setFileFieldName(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.JAVADB_EMBEDED.getDBDisplayName())) {
      dbconn.setSID(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.HSQLDB_IN_PROGRESS.getDBDisplayName())) {
      dbconn.setDBRootPath(s[index]);
    }
 else {
      dbconn.setServerName(s[index]);
    }
  }
  index=2;
  if (s[index] != "String_Node_Str") {
    if (selection.equals(EDatabaseConnTemplate.INTERBASE.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.TERADATA.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.AS400.getDBDisplayName())|| selection.equals(EDatabaseConnTemplate.HSQLDB_IN_PROGRESS.getDBDisplayName())) {
      dbconn.setSID(s[index]);
    }
 else     if (selection.equals(EDatabaseConnTemplate.FIREBIRD.getDBDisplayName())) {
      dbconn.setFileFieldName(s[index]);
    }
 else {
      dbconn.setPort(s[index]);
    }
  }
  index=3;
  if (s[index] != "String_Node_Str" && StringUtils.isEmpty(dbconn.getSID())) {
    if (selection.equals(EDatabaseConnTemplate.IBMDB2.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.INFORMIX.getDBDisplayName()) || selection.equals(EDatabaseConnTemplate.ORACLEFORSID.getDBDisplayName())|| selection.equals(EDatabaseConnTemplate.INGRES.getDBDisplayName())) {
      dbconn.setSID(s[index]);
    }
  }
  index=4;
  if (s[index] != "String_Node_Str") {
    if (selection.equals(EDatabaseConnTemplate.INFORMIX.getDBDisplayName())) {
      dbconn.setDatasourceName(s[index]);
    }
 else {
      dbconn.setAdditionalParams(s[index]);
    }
  }
  index=5;
  if (s[index] != "String_Node_Str") {
    dbconn.setAdditionalParams(s[index]);
  }
}