camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maria Iracheta (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAMEL-3789) org.apache.camel.component.file.strategy.MarkerFileExclusiveReadLockStrategy is not thread-safe
Date Tue, 22 Mar 2011 14:40:05 GMT

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

Maria Iracheta updated CAMEL-3789:
----------------------------------

    Attachment: GenericFileRenameProcessStrategy.java.patch

The method begin was calling super.begin and passing the original File instead of the renamed
File. But in the rollback and the commit methods the file passed is the renamed File. So in
the begin method we are using the original file but in rollback and commit we are using the
renamed File.

> org.apache.camel.component.file.strategy.MarkerFileExclusiveReadLockStrategy is not thread-safe
> -----------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-3789
>                 URL: https://issues.apache.org/jira/browse/CAMEL-3789
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.6.0
>            Reporter: Maria Iracheta
>         Attachments: FileOperations.java.patch, GenericFileDeleteProcessStrategy.java.patch,
GenericFileRenameProcessStrategy.java.patch, MarkerFileExclusiveReadLockStrategy.java.patch
>
>
> MarkerFileExclusiveReadLockStrategy is not thread-safe. When I run  a File endpoint with
more than one thread the MarkerFileExclusiveReadLockStrategy only deletes the last file to
start being processed. 
> The MarkerFileExclusiveReadLockStrategy uses global variables: 
> private File lock; 
> private String lockFileName; 
> and gives them values on the acquireExclusiveReadLock method. When another thread calls
the releaseExclusiveReadLock method it uses the global variables to delete the locked file.
That means that if another thread came and called the acquireExclusiveReadLock it would have
changed the values on the global variables. 
> If lock and lockFileName are not global variables the problem seems to disappear and
I can a multithreaded File endpoint and not locked file is left undeleted. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message