cryptomator / webdav-nio-adapter

Jackrabbit-based servlets running on embedded Jetty to serve a directory specified by a java.nio.file.Path
GNU Affero General Public License v3.0
12 stars 8 forks source link

Ignore empty directory file #6

Closed tobihagemann closed 7 years ago

tobihagemann commented 7 years ago

Related to https://github.com/cryptomator/cryptofs/issues/8.

Expected

Contents of a directory should be shown even if there is an empty directory file. So it should be just ignored.

Actual

Contents of a directory aren't shown if there is an empty directory file inside.

Stack Trace

2017-04-20 16:36:17,254 WARN  [HttpChannel:507] /<redacted>/Vault/
java.io.UncheckedIOException: java.io.IOException: Failed to load contents of directory file at path /<redacted>/Vault/d/OS/MBBIKIS7IOQHA2CCEVEUOIVZ4NORXW/0R26YAMEPAX27VPMMK2C3TORNOJQJM3MEVYGYS2KPMRWOUNBM
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:114) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.apache.jackrabbit.webdav.MultiStatus.addResourceProperties(MultiStatus.java:63) ~[jackrabbit-webdav-2.15.0.jar:?]
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.doPropFind(AbstractWebdavServlet.java:561) ~[jackrabbit-webdav-2.15.0.jar:?]
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.execute(AbstractWebdavServlet.java:349) ~[jackrabbit-webdav-2.15.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.WebDavServlet.execute(WebDavServlet.java:106) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:292) ~[jackrabbit-webdav-2.15.0.jar:?]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.cryptomator.frontend.webdav.servlet.MacChunkedPutCompatibilityFilter.doFilterHttp(MacChunkedPutCompatibilityFilter.java:58) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.cryptomator.frontend.webdav.servlet.AcceptRangeFilter.doFilterHttp(AcceptRangeFilter.java:38) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.cryptomator.frontend.webdav.servlet.MkcolComplianceFilter.doFilterHttp(MkcolComplianceFilter.java:42) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.cryptomator.frontend.webdav.servlet.PostRequestBlockingFilter.doFilterHttp(PostRequestBlockingFilter.java:41) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.cryptomator.frontend.webdav.servlet.UnicodeResourcePathNormalizationFilter.doFilterHttp(UnicodeResourcePathNormalizationFilter.java:68) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.cryptomator.frontend.webdav.servlet.LoggingFilter.doFilterHttp(LoggingFilter.java:44) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.4.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481) ~[jetty-servlet-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1561) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.Server.handle(Server.java:564) ~[jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) [jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [jetty-server-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) [jetty-io-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) [jetty-io-9.4.2.v20170220.jar:9.4.2.v20170220]
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) [jetty-io-9.4.2.v20170220.jar:9.4.2.v20170220]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: java.io.IOException: Failed to load contents of directory file at path /<redacted>/Vault/d/OS/MBBIKIS7IOQHA2CCEVEUOIVZ4NORXW/0R26YAMEPAX27VPMMK2C3TORNOJQJM3MEVYGYS2KPMRWOUNBM
    at org.cryptomator.cryptofs.DirectoryIdProvider.load(DirectoryIdProvider.java:36) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDir(CryptoPathMapper.java:88) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDirPath(CryptoPathMapper.java:75) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:233) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:257) ~[cryptofs-1.2.0.jar:?]
    at java.nio.file.Files.readAttributes(Files.java:1737) ~[?:1.8.0_131]
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:102) ~[webdav-nio-adapter-0.4.0.jar:?]
    ... 48 more
Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Invalid, empty directory file: /<redacted>/Vault/d/OS/MBBIKIS7IOQHA2CCEVEUOIVZ4NORXW/0R26YAMEPAX27VPMMK2C3TORNOJQJM3MEVYGYS2KPMRWOUNBM
    at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:502) ~[guava-21.0.jar:?]
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:461) ~[guava-21.0.jar:?]
    at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:78) ~[guava-21.0.jar:?]
    at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:142) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2461) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2425) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[guava-21.0.jar:?]
    at org.cryptomator.cryptofs.DirectoryIdProvider.load(DirectoryIdProvider.java:34) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDir(CryptoPathMapper.java:88) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDirPath(CryptoPathMapper.java:75) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:233) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:257) ~[cryptofs-1.2.0.jar:?]
    at java.nio.file.Files.readAttributes(Files.java:1737) ~[?:1.8.0_131]
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:102) ~[webdav-nio-adapter-0.4.0.jar:?]
    ... 48 more
Caused by: java.io.IOException: Invalid, empty directory file: /<redacted>/Vault/d/OS/MBBIKIS7IOQHA2CCEVEUOIVZ4NORXW/0R26YAMEPAX27VPMMK2C3TORNOJQJM3MEVYGYS2KPMRWOUNBM
    at org.cryptomator.cryptofs.DirectoryIdLoader.load(DirectoryIdLoader.java:25) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.DirectoryIdLoader.load(DirectoryIdLoader.java:13) ~[cryptofs-1.2.0.jar:?]
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[guava-21.0.jar:?]
    at org.cryptomator.cryptofs.DirectoryIdProvider.load(DirectoryIdProvider.java:34) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDir(CryptoPathMapper.java:88) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDirPath(CryptoPathMapper.java:75) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:233) ~[cryptofs-1.2.0.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:257) ~[cryptofs-1.2.0.jar:?]
    at java.nio.file.Files.readAttributes(Files.java:1737) ~[?:1.8.0_131]
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:102) ~[webdav-nio-adapter-0.4.0.jar:?]
    ... 48 more
tobihagemann commented 7 years ago

Hm okay, maybe it's wrong in this repository. Maybe it should just be silently ignored in CryptoFS. I have no clue. :smile:

overheadhunter commented 7 years ago

maybe related exception:

java.io.UncheckedIOException: java.nio.file.NoSuchFileException: C:\Users\Sebastian\Dropbox\Top Secret\d\PY\N3COE7E4CGC2HGGL4UKMV55DNGSVUS\46U3PFHQQBAZQDL44JM2NKESRVKZEKMCLLS5HWIPTNAUZ3VBOQ======
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:114) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.apache.jackrabbit.webdav.MultiStatus.addResourceProperties(MultiStatus.java:63) ~[jackrabbit-webdav-2.15.1.jar:?]
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.doPropFind(AbstractWebdavServlet.java:561) ~[jackrabbit-webdav-2.15.1.jar:?]
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.execute(AbstractWebdavServlet.java:349) ~[jackrabbit-webdav-2.15.1.jar:?]
    at org.cryptomator.frontend.webdav.servlet.WebDavServlet.execute(WebDavServlet.java:106) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:292) ~[jackrabbit-webdav-2.15.1.jar:?]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.cryptomator.frontend.webdav.servlet.MacChunkedPutCompatibilityFilter.doFilterHttp(MacChunkedPutCompatibilityFilter.java:58) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.cryptomator.frontend.webdav.servlet.AcceptRangeFilter.doFilterHttp(AcceptRangeFilter.java:38) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.cryptomator.frontend.webdav.servlet.MkcolComplianceFilter.doFilterHttp(MkcolComplianceFilter.java:42) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.cryptomator.frontend.webdav.servlet.PostRequestBlockingFilter.doFilterHttp(PostRequestBlockingFilter.java:41) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.cryptomator.frontend.webdav.servlet.UnicodeResourcePathNormalizationFilter.doFilterHttp(UnicodeResourcePathNormalizationFilter.java:68) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.cryptomator.frontend.webdav.servlet.LoggingFilter.doFilterHttp(LoggingFilter.java:44) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26) ~[webdav-nio-adapter-0.5.0.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481) ~[jetty-servlet-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.Server.handle(Server.java:564) ~[jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) [jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [jetty-server-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) [jetty-io-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) [jetty-io-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) [jetty-io-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128) [jetty-util-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) [jetty-util-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) [jetty-util-9.4.4.v20170414.jar:9.4.4.v20170414]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199) [jetty-util-9.4.4.v20170414.jar:9.4.4.v20170414]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: java.nio.file.NoSuchFileException: C:\Users\Sebastian\Dropbox\Top Secret\d\PY\N3COE7E4CGC2HGGL4UKMV55DNGSVUS\46U3PFHQQBAZQDL44JM2NKESRVKZEKMCLLS5HWIPTNAUZ3VBOQ======
    at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79) ~[?:1.8.0_131]
    at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[?:1.8.0_131]
    at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[?:1.8.0_131]
    at sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:53) ~[?:1.8.0_131]
    at sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:38) ~[?:1.8.0_131]
    at sun.nio.fs.WindowsFileSystemProvider.readAttributes(WindowsFileSystemProvider.java:193) ~[?:1.8.0_131]
    at java.nio.file.Files.readAttributes(Files.java:1737) ~[?:1.8.0_131]
    at org.cryptomator.cryptofs.CryptoFileAttributeProvider.readAttributes(CryptoFileAttributeProvider.java:41) ~[cryptofs-1.2.1.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:236) ~[cryptofs-1.2.1.jar:?]
    at org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:257) ~[cryptofs-1.2.1.jar:?]
    at java.nio.file.Files.readAttributes(Files.java:1737) ~[?:1.8.0_131]
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:102) ~[webdav-nio-adapter-0.5.0.jar:?]
    ... 52 more
markuskreusch commented 7 years ago

Doesn't this issue belong into the https://github.com/cryptomator/cryptofs repo?

In my opinion we should definetely ignore empty directory files, as well as missing directories. What still is strange is that empty directory files seem to be "common". Not sure why that happens - checked the code and it looks good - maybe we should peer review the code in question again.

overheadhunter commented 7 years ago

Created issue 13 on CryptoFS.