From adc20ea2f29b80ced5312d14bc677fa7ed38c1b7 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 4 Mar 2016 01:29:34 +0100 Subject: [PATCH] code simplification, added further assertions for Coverity issue 72293 --- .../frontend/webdav/jackrabbitservlet/DavFile.java | 4 +++- .../frontend/webdav/jackrabbitservlet/DavNode.java | 11 ++++------- .../jackrabbitservlet/FilesystemResourceFactory.java | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavFile.java b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavFile.java index 2122dc7eb..cab2baf4b 100644 --- a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavFile.java +++ b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavFile.java @@ -167,7 +167,9 @@ class DavFile extends DavNode { public ActiveLock lock(LockInfo reqLockInfo) throws DavException { ActiveLock lock = super.lock(reqLockInfo); if (!exists()) { - getCollection().addMember(this, new NullInputContext()); + DavFolder parentFolder = getCollection(); + assert parentFolder != null : "File always has a folder."; + parentFolder.addMember(this, new NullInputContext()); } return lock; } diff --git a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavNode.java b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavNode.java index 5fb6ef51c..6cb537b9e 100644 --- a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavNode.java +++ b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/DavNode.java @@ -37,6 +37,7 @@ import org.apache.jackrabbit.webdav.property.DavPropertySet; import org.apache.jackrabbit.webdav.property.DefaultDavProperty; import org.apache.jackrabbit.webdav.property.PropEntry; import org.cryptomator.filesystem.jackrabbit.FileSystemResourceLocator; +import org.cryptomator.filesystem.jackrabbit.FolderLocator; abstract class DavNode implements DavResource { @@ -187,18 +188,14 @@ abstract class DavNode implements DavResour } @Override - public DavResource getCollection() { + public DavFolder getCollection() { if (node.isRootLocation()) { return null; } assert node.parent().isPresent() : "as my mom always sais: if it's not root, it has a parent"; - final FileSystemResourceLocator parentPath = node.parent().get(); - try { - return factory.createResource(parentPath, session); - } catch (DavException e) { - throw new IllegalStateException("Unable to get parent resource with path " + parentPath, e); - } + final FolderLocator parentPath = node.parent().get(); + return factory.createFolder(parentPath, session); } @Override diff --git a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/FilesystemResourceFactory.java b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/FilesystemResourceFactory.java index 829121c2b..43bce9663 100644 --- a/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/FilesystemResourceFactory.java +++ b/main/frontend-webdav/src/main/java/org/cryptomator/frontend/webdav/jackrabbitservlet/FilesystemResourceFactory.java @@ -50,7 +50,7 @@ class FilesystemResourceFactory implements DavResourceFactory { } @Override - public DavResource createResource(DavResourceLocator locator, DavSession session) throws DavException { + public DavResource createResource(DavResourceLocator locator, DavSession session) { if (locator instanceof FolderLocator) { FolderLocator folder = (FolderLocator) locator; return createFolder(folder, session);