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) {