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/15 08:05:29 UTC
svn commit: r1409666 - in /camel/branches/camel-2.9.x: ./
camel-core/src/main/java/org/apache/camel/Exchange.java
camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
Author: ningjiang
Date: Thu Nov 15 07:05:29 2012
New Revision: 1409666
URL: http://svn.apache.org/viewvc?rev=1409666&view=rev
Log:
CAMEL-5776 Fixed the issue that .camelLock is deleted by another camel instance
Merged revisions 1406957 via svnmerge from
https://svn.apache.org/repos/asf/camel/branches/camel-2.10.x
................
r1406957 | ningjiang | 2012-11-08 16:48:26 +0800 (Thu, 08 Nov 2012) | 15 lines
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
........
................
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/Exchange.java
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1406948-1406952
Merged /camel/branches/camel-2.10.x:r1406957
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/Exchange.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/Exchange.java?rev=1409666&r1=1409665&r2=1409666&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/Exchange.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/Exchange.java Thu Nov 15 07:05:29 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.9.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java?rev=1409666&r1=1409665&r2=1409666&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java Thu Nov 15 07:05:29 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) {