[ 
https://issues.apache.org/jira/browse/CAMEL-8954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14630049#comment-14630049
 ] 

Claus Ibsen commented on CAMEL-8954:
------------------------------------

Yeah the state should really be per file, so when you poll in that 2nd file, it 
wont override state from the 1st file. Thanks for the suggestion and the unit 
test.

> Lock information is not handovered together with Exchange on-completion 
> synchronizations
> ----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-8954
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8954
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.14.3
>            Reporter: Andy Fedotov
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 2.16.0, 2.15.3
>
>         Attachments: MarkerFileExclusiveReadLockStrategyUnlockTest.java
>
>
> This applies to the file components when using common read-lock strategies:
> - *markerFile* - 
> org.apache.camel.component.file.strategy.MarkerFileExclusiveReadLockStrategy
> - *fileLock* - 
> org.apache.camel.component.file.strategy.FileLockExclusiveReadLockStrategy
> This strategies stores lock information in the Exchange properties:
> - *Exchange.FILE_LOCK_FILE_ACQUIRED* == "CamelFileLockFileAcquired"
> - *Exchange.FILE_LOCK_FILE_NAME* == "CamelFileLockFileName"
> - *Exchange.FILE_LOCK_EXCLUSIVE_LOCK* == "CamelFileLockExclusiveLock"
> - *Exchange.FILE_LOCK_RANDOM_ACCESS_FILE* == "CamelFileLockRandomAccessFile"
> Lock information is stored as scalar values and can hold information about 
> _only one single lock_.
> When there are two Exchanges participates in the route, share UoW, and 
> synchronizations are handovered from one Exchange to another, information 
> about both locks can't be stored in the Exchange properties and lost. 
> Consequently when on-completion synchronizations are performed, read-lock 
> strategies can't access information about all the locks and they are not 
> released.
> For example, after completing this route lock for file1.dat is not released:
> {code:java}
> from("file:data/input-a?fileName=file1.dat&readLock=markerFile")
>     .pollEnrich("file:data/input-b?fileName=file2.dat&readLock=markerFile")
>     .to("mock:result");
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to