Description:
When expanding BigQuery project catalogs in Spotfire Information Designer, users may encounter a metadata fetching error stating "Cannot invoke java.lang.Boolean.booleanValue() because the return value of com.google.api.services.bigquery.model.TableList$Tables$View.getUseLegacySql() is null."
This occurs when BigQuery views have null values for the 'use_legacy_sql' property, causing the Simba JDBC driver to throw a null pointer exception during metadata retrieval.
Root Cause:
By default, Spotfire calls the JDBC getTables() function when expanding catalog metadata. When the driver encounters views with null 'use_legacy_sql' values, it cannot process the boolean conversion, resulting in the error. Other database tools may work correctly because they use different metadata retrieval methods like getSchemas().
Solution:
1. Open Spotfire Server Configuration Tool
2. Navigate to the BigQuery data source template
3. Add the following XML setting: <UseGetSchemasForTables>true</UseGetSchemasForTables>
4. Save the configuration changes
5. Restart Spotfire server services
6. Open a new Spotfire Analyst session
7. Re-save existing data sources from Information Designer to apply the template changes
8. Test expanding the problematic BigQuery catalogs
This solution requires JDBC version 4.1 or later. The BigQuery JDBC driver version 4.2 is compatible with this setting.
Additional Information:
The getSchemas() function is the recommended approach for BigQuery metadata browsing and avoids issues with null legacy SQL properties in views.
Comments
0 comments
Article is closed for comments.