Hi Again
The error seems to be in
org.apache.camel.component.file.FileConsumer.java on the pollFile-method
If a file is copied in to the monitored directory, and the file has a
modifies-timestamp which is older than the lastPollTime, it will not be
processed.
(This can be solved by remembering the name and modification time of
processed files, and process files which is not in this list)
Code with error is below
Regards
Ole Andreas Hegle
Businesscape AS
protected void pollFile(final File file) {
if (!file.exists()) {
return;
}
if (isValidFile(file)) {
// we only care about file modified times if we are not
deleting/moving files
if (endpoint.isNoop()) {
long fileModified = file.lastModified();
if (fileModified <= lastPollTime) {
if (LOG.isDebugEnabled()) {
LOG.debug("Ignoring file: " + file + " as
modified time: " + fileModified + " less than last poll time: " +
lastPollTime);
}
return;
}
} else {
if (filesBeingProcessed.contains(file)) {
return;
}
filesBeingProcessed.put(file, file);
}
Ole Andreas Hegle wrote:
Hi everybody
I am using Camel 1.1.0, and have discovered an error in the file
component.
When using the file-component without any options like this:
from("file://C:/Test/temp/testfolder").process(new TestFileProcessor());
Everything works according to specification
However...
When I add locking = false like this
from("file://C:/Test/temp/testfolder?lock=false").process(new
TestFileProcessor());
The files found are still locked (as they are copied to the .camel
directory.)
If I use the noop=true-option like this
from("file://C:/Test/temp/testfolder?noop=true").process(new
TestFileProcessor());
The file-component will only find files which are present in directory
at first scan, not files copied into directory after startup
If I use both lock and noop like this
from("file://C:/Test/temp/testfolder?lock=false&noop=true").process(new
TestFileProcessor());
The locking-option works fine (the file is not copied to .camel
sub-directory), however, only the component only finds files present
at startup, it does not find files copied to the directory after
initial poll is not detected.
So, for me it seems like there is a problem with the lock-option when
lock is used as the only parameter, and there is a problem with the
noop-option (as it only reads files on first scan)
Have anybody the same experience or can anybody help me to sort this out?
Regards. Ole Andreas Hegle, Businesscape AS
However, I would