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

Claus Ibsen resolved CAMEL-24190.
---------------------------------
    Resolution: Not A Problem

> camel-file - GenericFileOnCompletion should support SynchronizationVetoable 
> handover for stream download
> --------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24190
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24190
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-file
>            Reporter: Claus Ibsen
>            Priority: Major
>              Labels: improvement
>
> {{GenericFileOnCompletion}} implements plain {{Synchronization}}, which means 
> it does not support handover. When a file consumer uses 
> {{streamDownload=true}} and the route sends to an async endpoint like 
> {{seda:}}, the on-completion fires immediately on the consumer thread 
> (closing the stream via {{releaseRetrievedFileResources}}), before the 
> downstream seda consumer thread has a chance to read the stream content.
> If {{GenericFileOnCompletion}} implemented {{SynchronizationVetoable}} with 
> {{allowHandover() = true}}, the synchronization would transfer to the 
> downstream thread and fire only after that thread finishes processing. This 
> would make {{streamDownload=true}} safe to use with async endpoints like 
> {{seda:}} and {{jms:}}.
> However, handover also means the completion runs on a different thread and 
> could be deferred if the downstream queue is busy, which has implications for 
> resource management (file handles, connections staying open longer).
> This affects all file-based consumers: camel-file, camel-ftp, camel-sftp, 
> camel-smb.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to