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

Work on CAMEL-26259 started by Andrea Cosentino.
------------------------------------------------
> camel-alibaba-mns - a byte[], stream or File body is sent as a String, which 
> corrupts binary data, and the receiveMessage operation does not work
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26259
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26259
>             Project: Camel
>          Issue Type: Bug
>            Reporter: Claus Ibsen
>            Assignee: Andrea Cosentino
>            Priority: Major
>             Fix For: 4.24.0
>
>
> Found while adding the catalog body types of alibaba-mns (CAMEL-24961, PR 
> #28409).
> h4. 1. Binary bodies are corrupted
> {{MNSUtils.resolveMessageBody}} (main 2a465aa4814c, line 121) converts any 
> non-String body to String, so binary byte[], stream and File bodies are 
> changed before {{setMessageBody(String)}} ({{MNSProducer}}, lines 62 and 96), 
> though the SDK has {{setMessageBody(byte[])}}. Checked on 4.24.0-SNAPSHOT 
> with a Mockito client set on the endpoint.
> Proposed: send byte[] (and stream/File converted to byte[]) with 
> {{setMessageBody(byte[])}}.
> h4. 2. receiveMessage is offered but does not work
> {{receiveMessage}} is in the operation enums and the docs ({{MNSEndpoint}}, 
> line 46; {{MNSOperations}}, line 22), but the producer throws 
> {{UnsupportedOperationException}} for it ({{MNSProducer}}, line 55) and the 
> consumer ignores the operation. Checked on 4.24.0-SNAPSHOT with a Mockito 
> client set on the endpoint.
> Proposed: remove receiveMessage from the producer enums and docs (the 
> consumer receives), or implement it.
> h4. 3. The message id and MD5 are documented as headers but set as exchange 
> properties
> {{MNSHeaders.MESSAGE_ID}} and {{MESSAGE_BODY_MD5}} are labelled {{common}} 
> headers, and the consumer sets them as headers ({{MNSConsumer}}, lines 
> 102-104), but the producer sets them as exchange properties ({{MNSProducer}}, 
> lines 112 and 118). Checked on 4.24.0-SNAPSHOT with a Mockito client set on 
> the endpoint.
> Proposed: set them as headers on the producer as well (or document them as 
> properties for the producer).
> _Claude Code on behalf of davsclaus_



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

Reply via email to