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(); }