[
https://issues.apache.org/jira/browse/CAMEL-26299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-26299 started by Andrea Cosentino.
------------------------------------------------
> camel-azure-eventgrid - every send fails with a NullPointerException: the
> CloudEvent is built without a data format
> -------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26299
> URL: https://issues.apache.org/jira/browse/CAMEL-26299
> Project: Camel
> Issue Type: Bug
> Components: camel-azure
> Reporter: Claus Ibsen
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.24.0
>
>
> The producer builds each event with
> {code:java}
> new CloudEvent("/camel", eventType, BinaryData.fromObject(data), null, null)
> {code}
> azure-core (1.57.0 on main) requires the format when there is data, so every
> send fails before it reaches Azure:
> {noformat}
> java.lang.NullPointerException: 'format' cannot be null when 'data' isn't
> null.
> {noformat}
> This was checked by building a CloudEvent this way for a String, JSON text,
> byte[], Map, POJO, number, stream and file body: all fail. The call has been
> there since the component was added (CAMEL-20552). The only test of the
> module, EventGridComponentTest, configures endpoints and never sends, so it
> was not seen.
> While fixing it, note what BinaryData.fromObject does with the body, as the
> data is the JSON serialization of the object: a Map or a POJO becomes a JSON
> object (what Event Grid expects), but text becomes a JSON string (JSON text
> is sent quoted, not parsed), bytes a base64 string, an InputStream an empty
> object and a File its path. The fix could pick CloudEventDataFormat.JSON for
> a Map or a POJO, send text that is JSON and bytes as they are
> (BinaryData.fromString / fromBytes), and read a stream or a file, plus a test
> that sends with a mocked publisher client.
> Found while declaring the catalog body types of the component:
> https://github.com/apache/camel/pull/28446
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)