That is a classic problem when transferring files.
There are a number of ways to solve it, including...
1. Upload the file with a temporary extension (eg abc.txt.writing) and rename the file when it is complete - ensure the file filter doesn't 'see' ...writing files
2. Upload a second empty file when done (abc.txt.complete) - use a custom filter to detect ...complete files and return the main file.
If you don't have control over the client, you might have to check the last updated timestamp, and have the custom filter only "find" the file if it was last updated, say, 10 minutes ago.
Gary P. Russell
Spring Integration Team
SpringSource, a division of VMware