liferoad opened a new pull request, #35047: URL: https://github.com/apache/beam/pull/35047
Fixes https://github.com/apache/beam/issues/21405 When using BigQueryIO's STORAGE_API_AT_LEAST_ONCE write method, if the TableReference provided (e.g., through a dynamic destination) did not explicitly contain a project ID, the underlying call to fetch table metadata (schema) would result in a NullPointerException. This occurred because the default project ID from BigQueryOptions or GcpOptions was not being consistently applied at the point of the API call in BigQueryServicesImpl.DatasetServiceImpl.getTable(). This commit modifies the getTable() method in DatasetServiceImpl to more robustly resolve the project ID. If the input TableReference lacks a project ID, the method now attempts to use the project ID from BigQueryOptions.getBigQueryProject(), and if that is also unavailable, it falls back to GcpOptions.getProject(). Unit tests have been added to BigQueryServicesImplTest to verify: - Resolution of project ID from BigQueryOptions.getBigQueryProject(). - Fallback resolution from GcpOptions.getProject() when BigQueryOptions.getBigQueryProject() is null. - Preservation of an existing project ID if already present in the TableReference. **Please** add a meaningful description for your change here ------------------------ Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily: - [ ] Mention the appropriate issue in your description (for example: `addresses #123`), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead. - [ ] Update `CHANGES.md` with noteworthy changes. - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf). See the [Contributor Guide](https://beam.apache.org/contribute) for more tips on [how to make review process smoother](https://github.com/apache/beam/blob/master/CONTRIBUTING.md#make-the-reviewers-job-easier). To check the build health, please visit [https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md) GitHub Actions Tests Status (on master branch) ------------------------------------------------------------------------------------------------ [](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule) [](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule) [](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule) [](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule) See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more information about GitHub Actions CI or the [workflows README](https://github.com/apache/beam/blob/master/.github/workflows/README.md) to see a list of phrases to trigger workflows. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
