[
https://issues.apache.org/jira/browse/CAMEL-24231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-24231:
--------------------------------
Fix Version/s: 4.14.9
4.18.4
> pollEnrich with dynamic fileName using exchangeProperty fails due to missing
> properties in dummy exchange
> ---------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24231
> URL: https://issues.apache.org/jira/browse/CAMEL-24231
> Project: Camel
> Issue Type: Bug
> Components: camel-file
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.14.9, 4.18.4, 4.22.0
>
>
> When using pollEnrich with a dynamic fileName expression that references
> exchange properties (e.g. {{${exchangeProperty.target}}}), the
> PollDynamicAware optimization creates a dummy exchange via
> {{GenericFileHelper.createDummy()}} that does not copy exchange properties
> from the incoming exchange. This causes the fileName expression to evaluate
> to null, effectively bypassing the filename filter and picking up any file in
> the directory.
> The workaround is to set {{allowOptimisedComponents(false)}} on the
> pollEnrich.
> *Root cause:*
> {{GenericFileHelper.createDummy()}} copies headers and variables from the
> dynamic exchange but misses exchange properties. A secondary issue is that
> the variables copy is nested inside the {{hasHeaders()}} guard, so variables
> are not copied when the exchange has variables but no headers.
> *Example route:*
> {code:java}
> from("direct:start")
>
> .pollEnrich().simple("file:inbox?noop=true&fileName=${exchangeProperty.target}")
> .timeout(500)
> .to("mock:result");
> {code}
> *Fix:*
> Copy exchange properties (and fix variables nesting) in
> {{GenericFileHelper.createDummy()}}.
> Reported by Marcus Ionker on the Camel users mailing list.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)