[ 
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)

Reply via email to