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

Claus Ibsen updated CAMEL-26239:
--------------------------------
    Description: 
Found while adding the catalog body types of state-store (CAMEL-24961, PR 
#28397).

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_

  was:
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_


> 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
>            Priority: Major
>             Fix For: 4.24.0
>
>
> Found while adding the catalog body types of state-store (CAMEL-24961, PR 
> #28397).
> 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)

Reply via email to