[
https://issues.apache.org/jira/browse/CAMEL-26230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-26230 started by Andrea Cosentino.
------------------------------------------------
> camel-influxdb2 - a Point with no fields is dropped without an error, and a
> route cannot start while InfluxDB is down even with autoCreateOrg=false
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26230
> URL: https://issues.apache.org/jira/browse/CAMEL-26230
> Project: Camel
> Issue Type: Bug
> Components: camel-influxdb
> Reporter: Claus Ibsen
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.24.0
>
>
> Found while adding the catalog body types of influxdb2 (CAMEL-24961, PR
> #28398). There is no JIRA component for camel-influxdb2, so this uses
> camel-influxdb.
> h4. 1. A Point with no fields is dropped without an error
> {{InfluxDb2Producer.insertPoint}} (main 2a465aa4814c, line 106) passes the
> Point to {{writeApi.writePoint}}; the client skips a Point that has no
> fields, so the exchange succeeds and nothing is written. Checked on
> 4.24.0-SNAPSHOT with InfluxDB 1.8 and 2.7 (docker).
> Proposed: fail the exchange when the Point (or a Point of Points/Records) has
> no fields.
> h4. 2. The endpoint calls the server at startup even with autoCreateOrg=false
> {{InfluxDb2Endpoint.doInit}} (line 177) always calls {{ensureOrgExists}} and
> {{ensureBucketExists}} (which calls {{ensureOrgExists}} again, line 206);
> {{findOrganizations}} (line 187) needs the server, so the route cannot start
> while InfluxDB is down, whatever {{autoCreateOrg}} is. Checked on
> 4.24.0-SNAPSHOT with InfluxDB 1.8 and 2.7 (docker).
> Proposed: look the organization and bucket up only when {{autoCreateOrg}} /
> {{autoCreateBucket}} is true (or lazily on the first write).
> h4. 3. The Map converter mutates the caller's Map
> {{CamelInfluxDb2Converters}} (line 45-47) removes
> {{CamelInfluxDB2MeasurementName}} from the body Map and puts it back, so an
> immutable Map ({{Map.of}}) fails with {{UnsupportedOperationException}}, and
> a Map shared with other code is changed while the point is built. Checked on
> 4.24.0-SNAPSHOT with InfluxDB 1.8 and 2.7 (docker).
> Proposed: copy the Map without the measurement key instead of removing and
> re-adding it.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)