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


Reply via email to