[
https://issues.apache.org/jira/browse/CAMEL-26251?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-26251 started by Andrea Cosentino.
------------------------------------------------
> camel-google-bigquery - the component connectionFactory option is ignored,
> and a DDL query in bigquery-sql likely fails with a NullPointerException
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26251
> URL: https://issues.apache.org/jira/browse/CAMEL-26251
> Project: Camel
> Issue Type: Bug
> Components: camel-google-bigquery
> Reporter: Claus Ibsen
> Assignee: Andrea Cosentino
> Priority: Minor
> Fix For: 4.24.0
>
>
> Found while adding the catalog body types of google-bigquery and
> google-bigquery-sql (CAMEL-24961, PR #28404).
> h4. 1. The component-level connectionFactory is ignored
> {{GoogleBigQueryComponent}} and {{GoogleBigQuerySQLComponent}} have a
> {{connectionFactory}} option (lines 40 and 38), but the endpoints only read
> {{configuration.getConnectionFactory()}} ({{GoogleBigQueryEndpoint.doStart}},
> main 2a465aa4814c, line 68; {{GoogleBigQuerySQLEndpoint}}, line 69), and
> {{createEndpoint}} copies the component's {{configuration}}, not this field.
> {{component.setConnectionFactory(...)}} is silently ignored and a default
> client is built from the endpoint options. Checked on 4.24.0-SNAPSHOT with
> the goccy bigquery-emulator in docker.
> Proposed: use the component's connectionFactory when the endpoint
> configuration has none.
> h4. 2. bigquery-sql: a DDL query likely fails with a NullPointerException
> {{GoogleBigQuerySQLProducer}} (line 100) assigns {{getNumDmlAffectedRows()}}
> to a {{long}} for every non-SELECT job; for DDL (CREATE TABLE...) the value
> is null, so the unboxing throws a NullPointerException. Read in the code, not
> run.
> Proposed: use a {{Long}} and set the body to null (or 0) when there is no DML
> count.
> h4. 3. bigquery: a bad entry of a grouped exchange is silently dropped
> {{GoogleBigQueryProducer.process}} (line 141) sets the "Cannot handle body
> type" exception on the inner exchange of a grouped exchange, which nobody
> looks at, so the outer exchange completes as a success and the bad entry is
> dropped without notice. Read in the code, not run.
> Proposed: set the exception on the exchange being processed (or fail the
> whole request).
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)