Program: 84173
Project: 84173
Buggy source:
private void readColumns(String schema) throws SQLException, JDBCException {
  updateListeners("String_Node_Str" + database.toString() + "String_Node_Str");
  Statement selectStatement=database.getConnection().createStatement();
  ResultSet rs=databaseMetaData.getColumns(database.convertRequestedSchemaToCatalog(schema),database.convertRequestedSchemaToSchema(schema),null,null);
  while (rs.next()) {
    Column columnInfo=new Column();
    String tableName=rs.getString("String_Node_Str");
    String columnName=rs.getString("String_Node_Str");
    String schemaName=rs.getString("String_Node_Str");
    String catalogName=rs.getString("String_Node_Str");
    if (database.isSystemTable(catalogName,schemaName,tableName) || database.isLiquibaseTable(tableName)) {
      continue;
    }
    Table table=tablesMap.get(tableName);
    if (table == null) {
      View view=viewsMap.get(tableName);
      if (view == null) {
        log.info("String_Node_Str" + tableName + "String_Node_Str"+ columnName);
        continue;
      }
 else {
        columnInfo.setView(view);
        view.getColumns().add(columnInfo);
      }
    }
 else {
      columnInfo.setTable(table);
      table.getColumns().add(columnInfo);
    }
    columnInfo.setName(columnName);
    columnInfo.setDataType(rs.getInt("String_Node_Str"));
    columnInfo.setColumnSize(rs.getInt("String_Node_Str"));
    columnInfo.setDecimalDigits(rs.getInt("String_Node_Str"));
    columnInfo.setTypeName(rs.getString("String_Node_Str"));
    Object defaultValue=rs.getObject("String_Node_Str");
    try {
      columnInfo.setDefaultValue(database.convertDatabaseValueToJavaObject(defaultValue,columnInfo.getDataType(),columnInfo.getColumnSize(),columnInfo.getDecimalDigits()));
    }
 catch (    ParseException e) {
      throw new JDBCException(e);
    }
    int nullable=rs.getInt("String_Node_Str");
    if (nullable == DatabaseMetaData.columnNoNulls) {
      columnInfo.setNullable(false);
    }
 else     if (nullable == DatabaseMetaData.columnNullable) {
      columnInfo.setNullable(true);
    }
    columnInfo.setPrimaryKey(isPrimaryKey(columnInfo));
    if (database.supportsAutoIncrement()) {
      ResultSet selectRS=null;
      try {
        selectRS=selectStatement.executeQuery("String_Node_Str" + columnName + "String_Node_Str"+ database.escapeTableName(schema,tableName)+ "String_Node_Str");
        ResultSetMetaData meta=selectRS.getMetaData();
        columnInfo.setAutoIncrement(meta.isAutoIncrement(1));
      }
  finally {
        if (selectRS != null) {
          selectRS.close();
        }
      }
    }
    columnsMap.put(tableName + "String_Node_Str" + columnName,columnInfo);
  }
  rs.close();
  selectStatement.close();
}

Fixed version (ground truth):
private void readColumns(String schema) throws SQLException, JDBCException {
  updateListeners("String_Node_Str" + database.toString() + "String_Node_Str");
  Statement selectStatement=database.getConnection().createStatement();
  ResultSet rs=databaseMetaData.getColumns(database.convertRequestedSchemaToCatalog(schema),database.convertRequestedSchemaToSchema(schema),null,null);
  while (rs.next()) {
    Column columnInfo=new Column();
    String tableName=rs.getString("String_Node_Str");
    String columnName=rs.getString("String_Node_Str");
    String schemaName=rs.getString("String_Node_Str");
    String catalogName=rs.getString("String_Node_Str");
    if (database.isSystemTable(catalogName,schemaName,tableName) || database.isLiquibaseTable(tableName)) {
      continue;
    }
    Table table=tablesMap.get(tableName);
    if (table == null) {
      View view=viewsMap.get(tableName);
      if (view == null) {
        log.info("String_Node_Str" + tableName + "String_Node_Str"+ columnName);
        continue;
      }
 else {
        columnInfo.setView(view);
        view.getColumns().add(columnInfo);
      }
    }
 else {
      columnInfo.setTable(table);
      table.getColumns().add(columnInfo);
    }
    columnInfo.setName(columnName);
    columnInfo.setDataType(rs.getInt("String_Node_Str"));
    columnInfo.setColumnSize(rs.getInt("String_Node_Str"));
    columnInfo.setDecimalDigits(rs.getInt("String_Node_Str"));
    Object defaultValue=rs.getObject("String_Node_Str");
    try {
      columnInfo.setDefaultValue(database.convertDatabaseValueToJavaObject(defaultValue,columnInfo.getDataType(),columnInfo.getColumnSize(),columnInfo.getDecimalDigits()));
    }
 catch (    ParseException e) {
      throw new JDBCException(e);
    }
    int nullable=rs.getInt("String_Node_Str");
    if (nullable == DatabaseMetaData.columnNoNulls) {
      columnInfo.setNullable(false);
    }
 else     if (nullable == DatabaseMetaData.columnNullable) {
      columnInfo.setNullable(true);
    }
    columnInfo.setPrimaryKey(isPrimaryKey(columnInfo));
    if (database.supportsAutoIncrement()) {
      ResultSet selectRS=null;
      try {
        selectRS=selectStatement.executeQuery("String_Node_Str" + columnName + "String_Node_Str"+ database.escapeTableName(schema,tableName)+ "String_Node_Str");
        ResultSetMetaData meta=selectRS.getMetaData();
        columnInfo.setAutoIncrement(meta.isAutoIncrement(1));
      }
  finally {
        if (selectRS != null) {
          selectRS.close();
        }
      }
    }
    columnInfo.setTypeName(database.getColumnType(rs.getString("String_Node_Str"),columnInfo.isAutoIncrement()));
    columnsMap.put(tableName + "String_Node_Str" + columnName,columnInfo);
  }
  rs.close();
  selectStatement.close();
}