Claus Ibsen created CAMEL-26239:
-----------------------------------
Summary: camel-state-store - a stream body is stored as the stream
object, so the stored value can be read only once and is shared across exchanges
Key: CAMEL-26239
URL: https://issues.apache.org/jira/browse/CAMEL-26239
Project: Camel
Issue Type: Bug
Reporter: Claus Ibsen
Fix For: 4.24.0
Found while adding the catalog body types of state-store (CAMEL-24961, PR
#28397). There is no JIRA component for camel-state-store, so this uses no JIRA
component.
h4. 1. A stream body is stored as the stream
{{StateStoreProducer}} put and putIfAbsent (main 2a465aa4814c, lines 57 and 65)
store {{message.getBody()}} as is. A stream body (or a {{StreamCache}}) is
stored as the stream object: the first get reads it, later gets get an empty
stream, and every exchange that gets the key shares the same stream object.
Checked on 4.24.0-SNAPSHOT with the in-memory backend.
Proposed: convert a stream or StreamCache body to bytes (or text) before
storing it.
_Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)