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

Work on CAMEL-26004 started by Claus Ibsen.
-------------------------------------------
> camel-tarfile - with usingIterator, a split that is not streaming gives every 
> entry an empty body
> -------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26004
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26004
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-tarfile
>    Affects Versions: 4.18.0, 4.22.0, 4.23.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.24.0
>
>
> With {{usingIterator=true}}, the tarFile data format returns a 
> {{TarIterator}} whose messages stream their entry from the one 
> {{TarArchiveInputStream}} of the archive ({{TarIterator}}, main 56aa5f4970a6, 
> lines 142-151). A body must therefore be read before the next entry is taken. 
> A split that is not streaming, the default of the split EIP, takes all the 
> elements of the iterator first and processes the messages after, when the tar 
> stream is at its end. So every entry has an empty body, with no error.
> The zipFile data format does not have the problem: its iterator copies each 
> entry into a stream cache. The tarFile docs only show {{.streaming()}} in the 
> examples and warn about parallel mode.
> Checked on 4.24.0-SNAPSHOT with {{camel run}}, with a tar of one 52-byte file 
> (made by marshal tarFile, and by {{tar --format ustar}}):
> * {{unmarshal: tarFile: usingIterator: true}}, then {{split: simple: 
> ${body}}}: one message, CamelTarFileEntryName plain.txt, body length 0;
> * the same with {{streaming: true}}: body length 52, the content of the file;
> * zipFile with the same split, not streaming: the content of the file.
> *Proposed change*: copy each entry into a stream cache, as ZipIterator does, 
> so the split works in both modes.
> _Claude Code on behalf of davsclaus_



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

Reply via email to