[ 
https://issues.apache.org/jira/browse/CAMEL-26005?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen reassigned CAMEL-26005:
-----------------------------------

    Assignee: Claus Ibsen

> camel-jackson-protobuf - protobufJackson writes JSON text, bytes or a stream 
> as they are and labels them application/protobuf
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26005
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26005
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jackson
>    Affects Versions: 4.18.0, 4.22.0, 4.23.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.24.0
>
>
> JacksonProtobufDataFormat extends JacksonDataFormat 
> ({{JacksonProtobufDataFormat}}, main 56aa5f4970a6, line 32). It therefore 
> inherits the JSON as-is shortcut of CAMEL-25329 (4.23.0): JacksonDataFormat 
> writes a body that is already JSON unchanged 
> ({{JsonPayloadHelper.writeIfAlreadyJson}}, {{JacksonDataFormat}} line 124). 
> Such a body is a byte[], a stream, a file, or a String with a JSON object or 
> array. For protobufJackson, that body is written to the protobuf output and 
> labelled {{Content-Type: application/protobuf}}, with no error, although it 
> is not protobuf. The commit of CAMEL-25329 kept the binary formats out of the 
> shortcut by not putting it in AbstractJacksonDataFormat, which avroJackson 
> extends. But protobufJackson extends JacksonDataFormat. The Jackson 3 twin, 
> camel-jackson3-protobuf, is the same (read from the code).
> Checked on 4.24.0-SNAPSHOT with {{camel run}}:
> * the body {{\{"id": 1, "name": "Camel"\}}} with {{marshal: protobuf: 
> {library: Jackson}}}: the same JSON text, with Content-Type 
> application/protobuf;
> * the same body with {{marshal: avro: {library: Jackson}}}: "Can not write 
> Avro output without specifying Schema", as expected.
> *Proposed change*: skip the JSON shortcut for the binary Jackson formats, for 
> example by overriding it in JacksonProtobufDataFormat or by keying it on the 
> JSON factory, in both camel-jackson-protobuf and camel-jackson3-protobuf.
> _Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to