Program: 126057
Project: 126057
Buggy source:
private void fillDefaultValues(DatabaseConnection connection){
  String distribution=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_DISTRIBUTION);
  String hiveVersion=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_VERSION);
  int distributionIndex=HiveConnUtils.getIndexOfDistribution(distribution == null ? null : distribution);
  int hiveVersionIndex=HiveConnUtils.getIndexOfHiveVersion(distribution == null ? null : distribution,hiveVersion == null ? null : hiveVersion);
  HiveConnVersionInfo hiveVersionObj=HiveConnUtils.getHiveVersionObj(distributionIndex,hiveVersionIndex);
  String[] hiveServerDisplayNames=HiveServerVersionUtils.extractAvailableArrayDisplayNames(hiveVersionObj);
  int indexofHiveServer=HiveServerVersionUtils.getIndexofHiveServer(hiveServerDisplayNames[0]);
  String hiveServer=HiveServerVersionUtils.extractKey(indexofHiveServer);
  connection.getParameters().put(ConnParameterKeys.HIVE_SERVER_VERSION,hiveServer);
  int hiveServerIndex=HiveConnUtils.getIndexOfHiveServer(hiveServer == null ? null : hiveServer);
  String[] hiveModeNames=HiveConnUtils.getHiveModeNames(distributionIndex,hiveVersionIndex,hiveServerIndex);
  String hiveMode=hiveModeNames[0];
  connection.getParameters().put(ConnParameterKeys.CONN_PARA_KEY_HIVE_MODE,hiveMode);
  int hiveModeIndex=HiveConnUtils.getIndexOfHiveMode(distribution == null ? null : distribution,hiveVersion == null ? null : hiveVersion,hiveMode == null ? null : hiveMode,hiveServer == null ? null : hiveServer);
  boolean isEmbeddedMode=HiveConnUtils.isEmbeddedMode(distributionIndex,hiveVersionIndex,hiveModeIndex,hiveServerIndex);
  if (StringUtils.isEmpty(connection.getSID())) {
    String defaultDatabase=HadoopDefaultConfsManager.getInstance().getDefaultConfValue(distribution,EHadoopCategory.HIVE.getName(),EHadoopProperties.DATABASE.getName());
    if (StringUtils.isNotEmpty(defaultDatabase)) {
      connection.setSID(defaultDatabase);
    }
  }
  if (StringUtils.isEmpty(connection.getPort())) {
    String defaultPort=null;
    if (isEmbeddedMode) {
      defaultPort=HadoopDefaultConfsManager.getInstance().getDefaultConfValue(distribution,EHadoopCategory.HIVE.getName(),HiveConnVersionInfo.MODE_EMBEDDED.getKey(),EHadoopProperties.PORT.getName());
    }
 else {
      defaultPort=HadoopDefaultConfsManager.getInstance().getDefaultConfValue(distribution,EHadoopCategory.HIVE.getName(),HiveConnVersionInfo.MODE_STANDALONE.getKey(),EHadoopProperties.PORT.getName());
    }
    if (StringUtils.isNotEmpty(defaultPort)) {
      connection.setPort(defaultPort);
    }
  }
  if (StringUtils.isEmpty(connection.getURL())) {
    String template=null;
    if (HiveServerVersionInfo.HIVE_SERVER_2.getKey().equals(hiveServer)) {
      template=DbConnStrForHive.URL_HIVE_2_TEMPLATE;
    }
 else {
      template=DbConnStrForHive.URL_HIVE_1_TEMPLATE;
    }
    String url=DatabaseConnStrUtil.getHiveURLString(connection,connection.getServerName(),connection.getPort(),connection.getSID(),template);
    if (StringUtils.isNotEmpty(url)) {
      connection.setURL(url);
    }
  }
}

Fixed version (ground truth):
private void fillDefaultValues(DatabaseConnection connection){
  String distribution=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_DISTRIBUTION);
  String hiveVersion=connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_VERSION);
  int distributionIndex=HiveConnUtils.getIndexOfDistribution(distribution == null ? null : distribution);
  int hiveVersionIndex=HiveConnUtils.getIndexOfHiveVersion(distribution == null ? null : distribution,hiveVersion == null ? null : hiveVersion);
  HiveConnVersionInfo hiveVersionObj=HiveConnUtils.getHiveVersionObj(distributionIndex,hiveVersionIndex);
  String[] hiveServerDisplayNames=HiveServerVersionUtils.extractAvailableArrayDisplayNames(hiveVersionObj);
  int indexofHiveServer=HiveServerVersionUtils.getIndexofHiveServer(hiveServerDisplayNames[0]);
  String hiveServer=HiveServerVersionUtils.extractKey(indexofHiveServer);
  connection.getParameters().put(ConnParameterKeys.HIVE_SERVER_VERSION,hiveServer);
  int hiveServerIndex=HiveConnUtils.getIndexOfHiveServer(hiveServer == null ? null : hiveServer);
  String[] hiveModeKeys=HiveConnUtils.getHiveModeKeys(distributionIndex,hiveVersionIndex,hiveServerIndex);
  String hiveMode=hiveModeKeys[0];
  connection.getParameters().put(ConnParameterKeys.CONN_PARA_KEY_HIVE_MODE,hiveMode);
  int hiveModeIndex=HiveConnUtils.getIndexOfHiveMode(distribution == null ? null : distribution,hiveVersion == null ? null : hiveVersion,hiveMode == null ? null : hiveMode,hiveServer == null ? null : hiveServer);
  boolean isEmbeddedMode=HiveConnUtils.isEmbeddedMode(distributionIndex,hiveVersionIndex,hiveModeIndex,hiveServerIndex);
  if (StringUtils.isEmpty(connection.getSID())) {
    String defaultDatabase=HadoopDefaultConfsManager.getInstance().getDefaultConfValue(distribution,EHadoopCategory.HIVE.getName(),EHadoopProperties.DATABASE.getName());
    if (StringUtils.isNotEmpty(defaultDatabase)) {
      connection.setSID(defaultDatabase);
    }
  }
  if (StringUtils.isEmpty(connection.getPort())) {
    String defaultPort=null;
    if (isEmbeddedMode) {
      defaultPort=HadoopDefaultConfsManager.getInstance().getDefaultConfValue(distribution,EHadoopCategory.HIVE.getName(),HiveConnVersionInfo.MODE_EMBEDDED.getKey(),EHadoopProperties.PORT.getName());
    }
 else {
      defaultPort=HadoopDefaultConfsManager.getInstance().getDefaultConfValue(distribution,EHadoopCategory.HIVE.getName(),HiveConnVersionInfo.MODE_STANDALONE.getKey(),EHadoopProperties.PORT.getName());
    }
    if (StringUtils.isNotEmpty(defaultPort)) {
      connection.setPort(defaultPort);
    }
  }
  if (StringUtils.isEmpty(connection.getURL())) {
    String template=null;
    if (HiveServerVersionInfo.HIVE_SERVER_2.getKey().equals(hiveServer)) {
      template=DbConnStrForHive.URL_HIVE_2_TEMPLATE;
    }
 else {
      template=DbConnStrForHive.URL_HIVE_1_TEMPLATE;
    }
    String url=DatabaseConnStrUtil.getHiveURLString(connection,connection.getServerName(),connection.getPort(),connection.getSID(),template);
    if (StringUtils.isNotEmpty(url)) {
      connection.setURL(url);
    }
  }
}