You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/11/08 09:48:26 UTC
svn commit: r1406957 - in /camel/branches/camel-2.10.x: ./
camel-core/src/main/java/org/apache/camel/
camel-core/src/main/java/org/apache/camel/component/file/strategy/
camel-core/src/test/java/org/apache/camel/component/file/strategy/
Author: ningjiang
Date: Thu Nov 8 08:48:26 2012
New Revision: 1406957
URL: http://svn.apache.org/viewvc?rev=1406957&view=rev
Log:
CAMEL-5776 Fixed the issue that .camelLock is deleted by another camel instance
Merged revisions 1406948,1406952 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r1406948 | ningjiang | 2012-11-08 16:22:38 +0800 (Thu, 08 Nov 2012) | 1 line
CAMEL-5776 Fixed the issue that .camelLock is deleted by another camel instance
........
r1406952 | ningjiang | 2012-11-08 16:36:27 +0800 (Thu, 08 Nov 2012) | 1 line
CAMEL-5776 Polished the exchange property name as Claus suggested
........
Added:
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategyReadLockFailedTest.java
- copied unchanged from r1406952, camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategyReadLockFailedTest.java
Modified:
camel/branches/camel-2.10.x/ (props changed)
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/Exchange.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1406948-1406952
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/Exchange.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/Exchange.java?rev=1406957&r1=1406956&r2=1406957&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/Exchange.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/Exchange.java Thu Nov 8 08:48:26 2012
@@ -120,6 +120,7 @@ public interface Exchange {
String FILE_PARENT = "CamelFileParent";
String FILE_LAST_MODIFIED = "CamelFileLastModified";
String FILTER_MATCHED = "CamelFilterMatched";
+ String FILE_LOCK_FILE_ACQUIRED = "CamelFileLockFileAcquired";
String GROUPED_EXCHANGE = "CamelGroupedExchange";
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java?rev=1406957&r1=1406956&r2=1406957&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java Thu Nov 8 08:48:26 2012
@@ -52,6 +52,7 @@ public class MarkerFileExclusiveReadLock
// create a plain file as marker filer for locking (do not use FileLock)
File lock = new File(lockFileName);
boolean acquired = lock.createNewFile();
+ exchange.setProperty(Exchange.FILE_LOCK_FILE_ACQUIRED, acquired);
return acquired;
}
@@ -60,11 +61,14 @@ public class MarkerFileExclusiveReadLock
GenericFile<File> file, Exchange exchange) throws Exception {
String lockFileName = getLockFileName(file);
File lock = new File(lockFileName);
-
- LOG.trace("Unlocking file: {}", lockFileName);
-
- boolean deleted = FileUtil.deleteFile(lock);
- LOG.trace("Lock file: {} was deleted: {}", lockFileName, deleted);
+ // only release the file if camel get the lock before
+ if (exchange.getProperty(Exchange.FILE_LOCK_FILE_ACQUIRED, false, Boolean.class)) {
+ LOG.trace("Unlocking file: {}", lockFileName);
+ boolean deleted = FileUtil.deleteFile(lock);
+ LOG.trace("Lock file: {} was deleted: {}", lockFileName, deleted);
+ } else {
+ LOG.trace("Don't try to delete the Lock file: {} as camel doesn't get to lock before.", lockFileName);
+ }
}
public void setTimeout(long timeout) {