camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy Fedotov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAMEL-8954) Lock information is not handovered together with Exchange on-completion synchronizations
Date Sun, 12 Jul 2015 11:02:04 GMT
Andy Fedotov created CAMEL-8954:
-----------------------------------

             Summary: 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
            Priority: Minor


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)

Mime
View raw message