[ 
https://issues.apache.org/jira/browse/CAMEL-26134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18136553#comment-18136553
 ] 

Claus Ibsen commented on CAMEL-26134:
-------------------------------------

PR: https://github.com/apache/camel/pull/28909

All three bugs fixed: byte[], File, Path and file consumer bodies are read as 
text (or as bytes for the binary message types), and a plain InputStream or 
Reader is cached first so the next step can still read it.

_Claude Code on behalf of Claus Ibsen (davsclaus)_

> camel-test-citrus - a byte[] body is compared as [123, 34, ...] so it never 
> validates, a File as its path, and a plain InputStream is consumed
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26134
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26134
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-test
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Found while adding the catalog body types of mapstruct, robotframework, 
> citrus and spring-event (CAMEL-24961, PR #28417).
> h4. 1. A byte[] body never validates
> {{CitrusValidationProcessor.buildReceivedMessage}} (main 2a465aa4814c, lines 
> 95-101) converts only a {{StreamCache}} body to a String; any other body is 
> handed to Citrus as is, and a {{byte[]}} is compared as {{Arrays.toString}} 
> ({{[123, 34, ...]}}), so JSON or text sent as bytes never validates. Checked 
> on 4.24.0-SNAPSHOT in-process.
> Proposed: convert byte[] (and other text-like bodies) to a String before the 
> validation.
> h4. 2. A File body is compared as its path
> A {{java.io.File}} body is compared as its {{toString}}, the path, not its 
> content (same place). Checked on 4.24.0-SNAPSHOT in-process.
> Proposed: read File and Path bodies as text.
> h4. 3. A plain InputStream is consumed and not reset
> Without stream caching, a plain {{InputStream}} body is read by the 
> validation and not reset (same place), so the next step gets an empty stream. 
> Checked on 4.24.0-SNAPSHOT in-process.
> Proposed: convert the body to a String and set it back on the message (or to 
> a StreamCache) before validating.
> _Claude Code on behalf of davsclaus_



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

Reply via email to