Program: 128515
Project: 128515
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) || EDatabaseConnTemplate.MYSQL.getDBDisplayName().equals(databaseType)) {
      return dbVersionString;
    }
 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)) {
        driverValue=dbVersionString;
      }
      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());
          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")) {
    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);
  }
  return null;
}

Fixed version (ground truth):
/** 
 * 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) || EDatabaseConnTemplate.MYSQL.getDBDisplayName().equals(databaseType)) {
      return dbVersionString;
    }
 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)) {
        driverValue=dbVersionString;
      }
      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")) {
    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);
  }
  return null;
}