Program: 126026
Project: 126026
Buggy source:
@Override protected void fillSynonyms(IMetadataConnection metadataConnection,List<TdColumn> metadataColumns,NamedColumnSet table,String tableName,DatabaseMetaData dbMetaData) throws SQLException {
  if (metadataConnection == null || dbMetaData == null) {
    return;
  }
  if (dbMetaData.getDatabaseProductName().equals(OracleExtractManager.DATABASE_PRODUCT_NAME)) {
    ExtractMetaDataUtils extractMeta=ExtractMetaDataUtils.getInstance();
    String synSQL="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str" + tableName + "String_Node_Str";
    if (!("String_Node_Str").equals(metadataConnection.getSchema())) {
      synSQL+="String_Node_Str" + metadataConnection.getSchema() + "String_Node_Str";
    }
 else     if (table.eContainer() instanceof Schema) {
      Schema schema=(Schema)table.eContainer();
      synSQL+="String_Node_Str" + schema.getName() + "String_Node_Str";
    }
    Statement sta=extractMeta.getConn().createStatement();
    extractMeta.setQueryStatementTimeout(sta);
    ResultSet columns=sta.executeQuery(synSQL);
    String typeName=null;
    int index=0;
    List<String> columnLabels=new ArrayList<String>();
    try {
      while (columns.next()) {
        long numPrecRadix=0;
        String columnName=columns.getString(GetColumn.COLUMN_NAME.name());
        TdColumn column=ColumnHelper.createTdColumn(columnName);
        String label=column.getLabel();
        label=ManagementTextUtils.filterSpecialChar(label);
        String label2=label;
        if (coreService != null && coreService.isKeyword(label)) {
          label="String_Node_Str" + label;
        }
        label=MetadataToolHelper.validateColumnName(label,index,columnLabels);
        column.setLabel(label);
        column.setOriginalField(label2);
        typeName=columns.getString(GetColumn.DATA_TYPE.name());
        try {
          int column_size=columns.getInt("String_Node_Str");
          column.setLength(column_size);
          numPrecRadix=columns.getLong("String_Node_Str");
          column.setPrecision(numPrecRadix);
        }
 catch (        Exception e1) {
          log.warn(e1,e1);
        }
        DatabaseConnection dbConnection=(DatabaseConnection)ConnectionHelper.getConnection(table);
        String dbmsId=dbConnection == null ? null : dbConnection.getDbmsId();
        if (dbmsId != null) {
          MappingTypeRetriever mappingTypeRetriever=MetadataTalendType.getMappingTypeRetriever(dbmsId);
          String talendType=mappingTypeRetriever.getDefaultSelectedTalendType(typeName,extractMeta.getIntMetaDataInfo(columns,"String_Node_Str"),extractMeta.getIntMetaDataInfo(columns,"String_Node_Str"));
          column.setTalendType(talendType);
          String defaultSelectedDbType=MetadataTalendType.getMappingTypeRetriever(dbConnection.getDbmsId()).getDefaultSelectedDbType(talendType);
          column.setSourceType(defaultSelectedDbType);
        }
        try {
          column.setNullable("String_Node_Str".equals(columns.getString(GetColumn.NULLABLE.name())));
        }
 catch (        Exception e) {
          log.error(e);
        }
        metadataColumns.add(column);
        columnLabels.add(column.getLabel());
        index++;
      }
    }
  finally {
      columns.close();
    }
  }
}

Fixed version (ground truth):
@Override protected void fillSynonyms(IMetadataConnection metadataConnection,List<TdColumn> metadataColumns,NamedColumnSet table,String tableName,DatabaseMetaData dbMetaData) throws SQLException {
  if (metadataConnection == null || dbMetaData == null) {
    return;
  }
  if (dbMetaData.getDatabaseProductName().equals(OracleExtractManager.DATABASE_PRODUCT_NAME)) {
    ExtractMetaDataUtils extractMeta=ExtractMetaDataUtils.getInstance();
    String synSQL="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str" + tableName + "String_Node_Str";
    if (!("String_Node_Str").equals(metadataConnection.getSchema())) {
      synSQL+="String_Node_Str" + metadataConnection.getSchema() + "String_Node_Str";
    }
 else     if (table.eContainer() instanceof Schema) {
      Schema schema=(Schema)table.eContainer();
      synSQL+="String_Node_Str" + schema.getName() + "String_Node_Str";
    }
    Statement sta=extractMeta.getConn().createStatement();
    extractMeta.setQueryStatementTimeout(sta);
    ResultSet columns=sta.executeQuery(synSQL);
    String typeName=null;
    int index=0;
    List<String> columnLabels=new ArrayList<String>();
    try {
      while (columns.next()) {
        String columnName=columns.getString(GetColumn.COLUMN_NAME.name());
        TdColumn column=ColumnHelper.createTdColumn(columnName);
        String label=column.getLabel();
        label=ManagementTextUtils.filterSpecialChar(label);
        String label2=label;
        if (coreService != null && coreService.isKeyword(label)) {
          label="String_Node_Str" + label;
        }
        label=MetadataToolHelper.validateColumnName(label,index,columnLabels);
        column.setLabel(label);
        column.setOriginalField(label2);
        typeName=columns.getString(GetColumn.DATA_TYPE.name());
        setLengthAndPrecision(column,columns,typeName);
        DatabaseConnection dbConnection=(DatabaseConnection)ConnectionHelper.getConnection(table);
        String dbmsId=dbConnection == null ? null : dbConnection.getDbmsId();
        if (dbmsId != null) {
          MappingTypeRetriever mappingTypeRetriever=MetadataTalendType.getMappingTypeRetriever(dbmsId);
          String talendType=mappingTypeRetriever.getDefaultSelectedTalendType(typeName,(int)column.getLength(),(int)column.getPrecision());
          column.setTalendType(talendType);
          String defaultSelectedDbType=MetadataTalendType.getMappingTypeRetriever(dbConnection.getDbmsId()).getDefaultSelectedDbType(talendType);
          column.setSourceType(defaultSelectedDbType);
        }
        try {
          column.setNullable("String_Node_Str".equals(columns.getString(GetColumn.NULLABLE.name())));
        }
 catch (        Exception e) {
          log.error(e);
        }
        metadataColumns.add(column);
        columnLabels.add(column.getLabel());
        index++;
      }
    }
  finally {
      columns.close();
    }
  }
}