LockedObject._expiry is now volatile and ResourceLocks.checkTimeouts() is synchronized.
"checkTimeouts" may always be called during in another thread, so it must be synchronized.
Same for _expiry. For example, we call "checkTimeouts" from a ScheduledExecutor in order to
let locks time out even though no one uses the webdav-system at the moment.