I am trying to write a test program for the Java Watch Service, which detects 
file creation, deletion, and modification by polling. Detection of file 
modification is implemented using the last modified time file attribute, which 
is read for each file individually and converted as needed to milliseconds by 
truncation.

To test the detection of file modification, I need to ensure that I modify the 
file in a way that changes the last modified time by at least one millisecond. 
The file may have just been created, so I pause for some amount of time before 
modifying the file to make sure that I am not modifying the file too soon after 
its creation to change the last modified time.

I am having trouble getting this to work reliably.

I have increased the pause before modification to 500 ms and the time I wait 
afterwards to observe a changed last modified time to 50 seconds, yet I still 
sometimes I timeout without seeing the attribute change. When this happens, my 
program modifies the file again. So far, that has never failed.

Two problems could be impacting this test, and it is hard to tease them apart:

1. A stale value could be written to the attribute when the file is closed.

2. Changes to the attribute are not visible for some time after the file is 
closed.

I am thinking the problem may be the first one, because waiting longer does not 
seem to help but modifying the file twice does.

Does anyone have advice on how to do this reliably?

  Alan




 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Filesystem-dev mailing list      (Filesystem-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/filesystem-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to