RFR: 8048020 - Regression on java.util.logging.FileHandler
Alan Bateman
Alan.Bateman at oracle.com
Wed Jun 25 15:38:29 UTC 2014
On 25/06/2014 16:21, Daniel Fuchs wrote:
> On 6/25/14 5:07 PM, Alan Bateman wrote:
>> Catching OverlappingFileLockException is usually a sign of a mis-use.
>> Can you summarize how this comes about (given the locking on "locks").
>
> A file is just a file. So nothing prevents some other piece of code in
> the same process to call FileChannel.lock() directly. For instance,
> another Handler implementation might do that - given that our 'locks'
> HashMap is private - it wouldn't be able to use it.
Okay, so this concern isn'tFileHandler but rather malicious or misguided
usages in other code running in the same VM. In that case I think the
comment could be a bit clearer that it's something other than the
FileHandler that is locking the file.
>
> The issue here is that CREATE + WRITE + APPEND will probably succeed
> if the file exists - even though we can't write in its parent dir.
> I am not sure we should be concerned about the performance of
> opening the file for the FileHandler. It's usually not something
> you do very often.
I don't think the Files.isXXX is useful here, especially if there are
other things changing the file system at the same time. There is no
guarantee that FileChannel.open will succeed. This may be a case where
you have to catch the IOException and continue (it's not nice to use
exceptions for control-flow but this may be one of these cases where it
becomes necessary.
-Alan.
More information about the core-libs-dev
mailing list