Lock factories do not have to work with all other lock factories...you need to use the same lock factory across all process'.
I agree, but I've grown accustomed here that we try to protect users from their own mistakes. I.e., if the factory is a parameter to the application, this can certainly happen, w/o any of the application owners even realize that ... so it just seems dangerous to me, and I think that the alternative of keeping the file there and failing elsewhere is not good.
Another scenario - one application opens the index on a local file system (which is shared) and uses Native, while the other, for safety reason, opens the index using Simple lock because it reads the index from a remote share ... does not make a lot of sense - but possible.
or even that the native lock feel needs to be in the same dir (eg it could be in a tmp dir)
Good point - but it's irrelevant to that issue - one can already shoot himself in the leg today by doing that. That's something I don't think we can protect from ... but allowing two lock files in the same directory - that just seems like a bug. Still, one could impl MyOwnNativeFSLock and create "my.lock.file" ... but we cannot protect from that either. So at least, and that's my own opinion, the core factories that are provided w/ Lucene should behave well.
So Mark - I agreed w/ you before on that, until Uwe brought up the reason why NativeFSLock was fixed in 2.9 to use the same lock file as Simple ... it seems like a good catch to me, and I think if it was fixed once already, do we really want to break that fix? That will certainly be a bw break, because now NativeFSLock could obtain a lock if a lock file is there (I'm not sure if we have tests that cover that scenario, but I have a feeling some will fail if we change that).
If the result of that discussion is that we should not fail if the lock file cannot be deleted, then I think we should rename it too, so that Native and Simple use different files and it is clear that you're using two different LFs, which is not supported?