// accept purpose argument so we are a drop-in for tempVerboseLock static AutoCloseable tempLock(S purpose default "", Lock lock) { if (lock == null) null; lock(lock); ret autoCloseable { unlock(lock); }; }