`expire` has to be protected by `localLock`, so move it to the `try...catch` block