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 cab2baf4b..5e471a00d 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 @@ -32,11 +32,15 @@ import org.cryptomator.filesystem.File; import org.cryptomator.filesystem.Folder; import org.cryptomator.filesystem.ReadableFile; import org.cryptomator.filesystem.jackrabbit.FileLocator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.io.ByteStreams; class DavFile extends DavNode { + private static final Logger LOG = LoggerFactory.getLogger(DavFile.class); + public DavFile(FilesystemResourceFactory factory, LockManager lockManager, DavSession session, FileLocator node) { super(factory, lockManager, session, node); } @@ -128,7 +132,7 @@ class DavFile extends DavNode { @Override public DavProperty getProperty(DavPropertyName name) { if (DavPropertyName.GETCONTENTLENGTH.equals(name)) { - return sizeProperty().get(); + return sizeProperty().orElse(null); } else { return super.getProperty(name); } @@ -147,6 +151,9 @@ class DavFile extends DavNode { if (node.exists()) { try (ReadableFile src = node.openReadable()) { return Optional.of(new DefaultDavProperty(DavPropertyName.GETCONTENTLENGTH, src.size())); + } catch (RuntimeException e) { + LOG.warn("Could not determine file size of " + getResourcePath(), e); + return Optional.empty(); } } else { return Optional.empty();