AbstractBasicFileAttributeView.java (version 1.5 : 49.0, super bit)
Alan Bateman
Alan.Bateman at Sun.COM
Fri Feb 27 09:45:38 PST 2009
Mark Thornton wrote:
> Alan Bateman wrote:
>> There isn't any technical reason and you are right that it is an
>> inconsistency (Eamonn McManus also pointed point this inconsistency
>> when reviewing the API). It requires a bit of thought and it may be
>> that the only thing we can do is allow it and specify that attempting
>> to set a time stamp to a value that pre-dates the file system/volume
>> results in undefined behavior. It is easy to find examples of
>> operating systems and file system combinations where it results in
>> the file's time stamp being set to the epoch, or where it silently
>> wraps around and sets it to some time in the future, or where it
>> fails (by throwing an IOException). Thanks again for bringing this up.
>>
>> -Alan.
>>
> In my opinion, the least surprising behaviour would be for the time
> stamp values to be clamped at the minimum/maximum values supported by
> the file system.
I agree that this approach, or failing if the value is out of range,
would be less surprising but I'm concerned that this may not be
implementable in all cases. That is, the setTimes method is intended to
map to a utimes or equivalent so there is a dependency on the operating
system. The system call or equivalent may complete silently or it may
fail. Failure at least gives an opportunity to retry with an adjusted
value if the valid range can be determined but this may not be feasible
either (esp. with remote file systems). It's an awkward issue.
-Alan.
More information about the nio-dev
mailing list