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

Claus Ibsen resolved CAMEL-8954.
--------------------------------
    Resolution: Fixed

> 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