Program: 127802
Project: 127802
Buggy source:
/** 
 * DOC nrousseau Comment method "getDatabaseValue".
 * @param connection
 * @param value
 * @return
 */
private static Object getDatabaseValue(DatabaseConnection connection,String value){
  String databaseType=connection.getDatabaseType();
  if (value.equals("String_Node_Str")) {
    String typeByProduct=getStandardDbTypeFromConnection(databaseType);
    if (databaseType.equals(EDatabaseTypeName.ORACLEFORSID.getDisplayName())) {
      return EDatabaseTypeName.ORACLEFORSID.getXmlName();
    }
 else     if (databaseType.equals(EDatabaseTypeName.ORACLESN.getDisplayName())) {
      return EDatabaseTypeName.ORACLESN.getXmlName();
    }
 else     if (databaseType.equals(EDatabaseTypeName.ORACLE_OCI.getDisplayName())) {
      return EDatabaseTypeName.ORACLE_OCI.getXmlName();
    }
 else     if (databaseType.equals(EDatabaseTypeName.ORACLE_RAC.getDisplayName())) {
      return EDatabaseTypeName.ORACLE_RAC.getXmlName();
    }
 else     if (databaseType.equals(EDatabaseTypeName.MSSQL.getDisplayName())) {
      return EDatabaseTypeName.MSSQL.getXMLType();
    }
 else {
      return typeByProduct;
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,databaseType)) {
      if (databaseType.equals("String_Node_Str")) {
        return "String_Node_Str";
      }
      if (databaseType.equals("String_Node_Str")) {
        return "String_Node_Str";
      }
      if (databaseType.equals("String_Node_Str")) {
        return "String_Node_Str";
      }
    }
 else {
      if (databaseType.equals("String_Node_Str")) {
        return "String_Node_Str";
      }
      if (databaseType.equals("String_Node_Str")) {
        return "String_Node_Str";
      }
      if (databaseType.equals("String_Node_Str")) {
        return "String_Node_Str";
      }
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getServerName())) {
      return connection.getServerName();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getServerName());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getPort())) {
      return connection.getPort();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getPort());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (("String_Node_Str").equals(connection.getSID()) || connection.getSID() == null) {
      if (isContextMode(connection,connection.getDatasourceName())) {
        return connection.getDatasourceName();
      }
 else {
        return TalendQuoteUtils.addQuotes(connection.getDatasourceName());
      }
    }
 else {
      if (isContextMode(connection,connection.getSID())) {
        return connection.getSID();
      }
 else {
        return TalendQuoteUtils.addQuotes(connection.getSID());
      }
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getDatasourceName())) {
      return connection.getDatasourceName();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getDatasourceName());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getUsername())) {
      return connection.getUsername();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getUsername());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getPassword())) {
      return connection.getPassword();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getPassword());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getNullChar())) {
      return connection.getNullChar();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getNullChar());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getUiSchema())) {
      return connection.getUiSchema();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getUiSchema());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getFileFieldName())) {
      return connection.getFileFieldName();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getFileFieldName());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getAdditionalParams())) {
      return connection.getAdditionalParams();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getAdditionalParams());
    }
  }
  if (value.equals("String_Node_Str")) {
    String dbVersionString=connection.getDbVersionString();
    if (EDatabaseConnTemplate.ACCESS.getDBDisplayName().equals(databaseType)) {
      return dbVersionString;
    }
 else     if (EDatabaseConnTemplate.MYSQL.getDBDisplayName().equals(databaseType)) {
      if (dbVersionString != null) {
        return dbVersionString.toUpperCase();
      }
    }
 else {
      String driverValue=EDatabaseVersion4Drivers.getDriversStr(databaseType,dbVersionString);
      if (EDatabaseConnTemplate.ORACLE_OCI.getDBDisplayName().equals(databaseType) || EDatabaseConnTemplate.ORACLE_RAC.getDBDisplayName().equals(databaseType) || EDatabaseConnTemplate.ORACLEFORSID.getDBDisplayName().equals(databaseType)|| EDatabaseConnTemplate.ORACLESN.getDBDisplayName().equals(databaseType)) {
        if (dbVersionString != null) {
          driverValue=dbVersionString.toUpperCase();
        }
      }
      if (isContextMode(connection,dbVersionString)) {
        return dbVersionString;
      }
 else       if (EDatabaseTypeName.VERTICA.getXmlName().equals(databaseType) && EDatabaseVersion4Drivers.VERTICA_6.getVersionValue().equals(dbVersionString)) {
        return "String_Node_Str";
      }
 else {
        return driverValue;
      }
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,databaseType)) {
      if (databaseType.equals(EDatabaseTypeName.ORACLEFORSID.getDisplayName())) {
        return "String_Node_Str";
      }
 else       if (databaseType.equals(EDatabaseTypeName.ORACLESN.getDisplayName())) {
        return "String_Node_Str";
      }
 else       if (databaseType.equals(EDatabaseTypeName.ORACLE_OCI.getDisplayName())) {
        return "String_Node_Str";
      }
 else       if (databaseType.equals(EDatabaseTypeName.ORACLE_RAC.getDisplayName())) {
        return "String_Node_Str";
      }
    }
 else {
      if (databaseType.equals(EDatabaseTypeName.ORACLEFORSID.getDisplayName())) {
        return "String_Node_Str";
      }
 else       if (databaseType.equals(EDatabaseTypeName.ORACLESN.getDisplayName())) {
        return "String_Node_Str";
      }
 else       if (databaseType.equals(EDatabaseTypeName.ORACLE_OCI.getDisplayName())) {
        return "String_Node_Str";
      }
 else       if (databaseType.equals(EDatabaseTypeName.ORACLE_RAC.getDisplayName())) {
        return "String_Node_Str";
      }
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getDriverClass())) {
      return connection.getDriverClass();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getDriverClass());
    }
  }
  if (value.equals("String_Node_Str")) {
    String url=connection.getURL();
    if (isContextMode(connection,url)) {
      return url;
    }
 else {
      if (url != null) {
        String h2Prefix="String_Node_Str";
        if (url.startsWith(h2Prefix)) {
          String path=url.substring(h2Prefix.length(),url.length());
          if (path.split("String_Node_Str").length > 2) {
            int startIndex=path.lastIndexOf("String_Node_Str") - 1;
            String filePath=path.substring(startIndex);
            h2Prefix+=path.substring(0,startIndex);
            path=filePath;
          }
          path=PathUtils.getPortablePath(path);
          url=h2Prefix + path;
        }
        return TalendQuoteUtils.addQuotes(url);
      }
    }
  }
  if (value.equals("String_Node_Str")) {
    List<Map<String,Object>> value2=new ArrayList<Map<String,Object>>();
    if (isContextMode(connection,connection.getDriverJarPath())) {
      Map<String,Object> line=new HashMap<String,Object>();
      line.put("String_Node_Str",connection.getDriverJarPath());
      value2.add(line);
    }
 else {
      String userDir=System.getProperty("String_Node_Str");
      String pathSeparator=System.getProperty("String_Node_Str");
      String defaultPath=userDir + pathSeparator + "String_Node_Str"+ pathSeparator+ "String_Node_Str";
      String jarPath=connection.getDriverJarPath();
      if (jarPath == null) {
        return null;
      }
      try {
        Character comma=';';
        String[] jars=jarPath.split(comma.toString());
        boolean deployed=false;
        if (jars != null) {
          for (          String jar : jars) {
            File file=Path.fromOSString(jar).toFile();
            if (file.exists() && file.isFile()) {
              String fileName=file.getName();
              Map<String,Object> line=new HashMap<String,Object>();
              line.put("String_Node_Str",fileName);
              value2.add(line);
              if (!new File(defaultPath + pathSeparator + fileName).exists()) {
                try {
                  CoreRuntimePlugin.getInstance().getLibrariesService().deployLibrary(file.toURL());
                  deployed=true;
                }
 catch (                IOException e) {
                  ExceptionHandler.process(e);
                  return null;
                }
              }
            }
          }
          if (deployed) {
            CoreRuntimePlugin.getInstance().getLibrariesService().resetModulesNeeded();
          }
        }
      }
 catch (      Exception e) {
        return null;
      }
    }
    return value2;
  }
  if (value.equals("String_Node_Str")) {
    return new Boolean(CDCTypeMode.LOG_MODE.getName().equals(connection.getCdcTypeMode()));
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getDBRootPath())) {
      return connection.getDBRootPath();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getDBRootPath());
    }
  }
  if (value.equals("String_Node_Str")) {
    String runningMode="String_Node_Str";
    if (EDatabaseTypeName.HSQLDB_IN_PROGRESS.getXmlName().equals(databaseType)) {
      runningMode="String_Node_Str";
    }
 else     if (EDatabaseTypeName.HSQLDB_SERVER.getXmlName().equals(databaseType)) {
      runningMode="String_Node_Str";
    }
 else     if (EDatabaseTypeName.HSQLDB_WEBSERVER.getXmlName().equals(databaseType)) {
      runningMode="String_Node_Str";
    }
    return runningMode;
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getDBRootPath())) {
      return connection.getDBRootPath();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getDBRootPath());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getDatasourceName())) {
      return connection.getDatasourceName();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getDatasourceName());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getServerName())) {
      return connection.getServerName();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getServerName());
    }
  }
  if (value.equals("String_Node_Str")) {
    if ((databaseType).equals(EDatabaseTypeName.HBASE.getDisplayName())) {
      return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HBASE_DISTRIBUTION);
    }
 else {
      return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_DISTRIBUTION);
    }
  }
  if (value.equals("String_Node_Str")) {
    return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_VERSION);
  }
  if (value.equals("String_Node_Str")) {
    return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_MODE);
  }
  if (value.equals("String_Node_Str")) {
    return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HBASE_DISTRIBUTION);
  }
  if (value.equals("String_Node_Str")) {
    return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HBASE_VERSION);
  }
  if (value.equals("String_Node_Str")) {
    return connection.getParameters().get(ConnParameterKeys.HIVE_SERVER_VERSION);
  }
  if (value.equals("String_Node_Str")) {
    return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HADOOP_CUSTOM_JARS);
  }
  if (value.equals(EParameterNameForComponent.PARA_NAME_FS_DEFAULT_NAME.getName())) {
    String nameNodeURL=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_NAME_NODE_URL);
    if (nameNodeURL == null && (databaseType).equals(EDatabaseTypeName.HBASE.getDisplayName())) {
      return nameNodeURL;
    }
 else     if (isContextMode(connection,nameNodeURL)) {
      return nameNodeURL;
    }
 else {
      return TalendQuoteUtils.addQuotes(nameNodeURL);
    }
  }
  if (value.equals(EParameterNameForComponent.PARA_NAME_MAPRED_JT.getName())) {
    String jobTrackerURL=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_JOB_TRACKER_URL);
    if (isContextMode(connection,jobTrackerURL)) {
      return jobTrackerURL;
    }
 else {
      return TalendQuoteUtils.addQuotes(jobTrackerURL);
    }
  }
  if (value.equals("String_Node_Str")) {
    return false;
  }
  if (value.equals("String_Node_Str")) {
    return true;
  }
  if (value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
    return "String_Node_Str";
  }
  if (value.equals("String_Node_Str")) {
    return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HBASE_VERSION);
  }
  if (value.equals("String_Node_Str")) {
    String useKrbValue=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_USE_KRB);
    if (useKrbValue == null) {
      return useKrbValue;
    }
 else {
      return Boolean.parseBoolean(useKrbValue);
    }
  }
  if (value.equals("String_Node_Str")) {
    String mapredJobTracker=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_JOB_TRACKER_URL);
    if (mapredJobTracker == null) {
      return mapredJobTracker;
    }
 else {
      return TalendQuoteUtils.addQuotesIfNotExist(StringUtils.trimToNull(mapredJobTracker));
    }
  }
  if (value.equals("String_Node_Str")) {
    String nameNodePrincipal=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_NAME_NODE_PRINCIPAL);
    if (nameNodePrincipal == null) {
      return nameNodePrincipal;
    }
 else {
      return TalendQuoteUtils.addQuotesIfNotExist(StringUtils.trimToNull(nameNodePrincipal));
    }
  }
  if (value.equals("String_Node_Str")) {
    String jobTrackerPrincipal=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_JOB_TRACKER_PRINCIPAL);
    if (jobTrackerPrincipal == null) {
      return jobTrackerPrincipal;
    }
 else {
      return TalendQuoteUtils.addQuotesIfNotExist(StringUtils.trimToNull(jobTrackerPrincipal));
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getServerName())) {
      return connection.getServerName();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getServerName());
    }
  }
  if (value.equals("String_Node_Str")) {
    if (isContextMode(connection,connection.getPort())) {
      return connection.getPort();
    }
 else {
      return TalendQuoteUtils.addQuotes(connection.getPort());
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * DOC nrousseau Comment method "getDatabaseValue".
 * @param connection
 * @param value
 * @return
 */
private static Object getDatabaseValue(DatabaseConnection connection,String value){
  return getDatabaseValue(connection,value,null);
}