Repository: camel
Updated Branches:
  refs/heads/master 02826d57e -> 55cc138ae


CAMEL-8387: File endpoint should validate the read lock timeout/interval 
options is configured correctly.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0c57c7bc
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0c57c7bc
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0c57c7bc

Branch: refs/heads/master
Commit: 0c57c7bc78d3d151f6554b77cba48f0dadf584b3
Parents: 02826d5
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sun Feb 22 10:50:38 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun Feb 22 10:58:47 2015 +0100

----------------------------------------------------------------------
 .../apache/camel/component/file/GenericFileEndpoint.java | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0c57c7bc/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
index fc8590d..e2aa419 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
@@ -41,7 +41,6 @@ import org.apache.camel.spi.BrowsableEndpoint;
 import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.IdempotentRepository;
 import org.apache.camel.spi.Language;
-import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IOHelper;
@@ -1271,6 +1270,16 @@ public abstract class GenericFileEndpoint<T> extends 
ScheduledPollEndpoint imple
 
     @Override
     protected void doStart() throws Exception {
+        // validate that the read lock options is valid for the process 
strategy
+        if (!"none".equals(readLock) && !"off".equals(readLock)) {
+            if (readLockTimeout > 0 && readLockTimeout <= 
readLockCheckInterval) {
+                throw new IllegalArgumentException("The option readLockTimeout 
must be higher than readLockCheckInterval"
+                        + ", was readLockTimeout=" + readLockTimeout + ", 
readLockCheckInterval=" + readLockCheckInterval
+                        + ". A good practice is to let the readLockTimeout be 
at least 3 or more times higher than the readLockCheckInterval" +
+                        ", to ensure the read lock procedure has amble times 
to run several times checks during acquiring the lock.");
+            }
+        }
+
         ServiceHelper.startServices(inProgressRepository, 
idempotentRepository);
         super.doStart();
     }

Reply via email to