diff --git a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/ExclusiveSharedLockManager.java b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/ExclusiveSharedLockManager.java index b94ee9ed8..88225c855 100644 --- a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/ExclusiveSharedLockManager.java +++ b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/ExclusiveSharedLockManager.java @@ -69,7 +69,8 @@ class ExclusiveSharedLockManager implements LockManager { } String token = DavConstants.OPAQUE_LOCK_TOKEN_PREFIX + UUID.randomUUID(); - return lockedResources.computeIfAbsent(locator, loc -> new HashMap<>()).computeIfAbsent(token, t -> new ExclusiveSharedLock(t, lockInfo)); + Map lockMap = Objects.requireNonNull(lockedResources.computeIfAbsent(locator, loc -> new HashMap<>())); + return lockMap.computeIfAbsent(token, t -> new ExclusiveSharedLock(t, lockInfo)); } private void removedExpiredLocksInLocatorHierarchy(FileSystemResourceLocator locator) {