Hi all,
As of tuesday (with a bunch of commits concerning locking), locking
seems to not work properly (or, more accurately - UNLOCKING doesn't
work, at least from the webdav servlet).
What appears to be happening is that the unlock() method in the LockImpl
class does a series of 3 checks, which is sensible enough. The final of
thes, checkLockToken(), calls slideToken.checkLockToken(). This then
fails, because there's no reason that that particular slideToken would
have been used for the lock.
Surely we should be either not doing this at all (because when we do the
actual lock removal, if the lock isn't present, it'll fail), OR we
should be consulting the stores - the store knows whether there's a
lock, nothing else is guaranteed to (unless I'm missing something).
For the moment, I've just got rid of condition3 (the checkLockToken()
one) in LockImpl.unlock(), which seems to work - I don't want to commit
this without an explanation of why it was like this to begin with,
though.
Michael
p.s. I'm going into hiding to study for exams after today, so if I don't
get a response soon (i.e. within a few hours), I probably won't read it
for a couple of weeks - Remy, please a) explain why I'm crazy, or b) fix
it, since I won't be around to commit stuff.