diff --git a/main/core/pom.xml b/main/core/pom.xml
index 40febc2a4..13c87cdd7 100644
--- a/main/core/pom.xml
+++ b/main/core/pom.xml
@@ -18,8 +18,8 @@
Cryptomator WebDAV and I/O module
- 9.3.1.v20150714
- 2.10.1
+ 9.3.3.v20150827
+ 2.11.0
diff --git a/main/core/src/main/java/org/cryptomator/webdav/WebDavServer.java b/main/core/src/main/java/org/cryptomator/webdav/WebDavServer.java
index 64870545f..76e92e185 100644
--- a/main/core/src/main/java/org/cryptomator/webdav/WebDavServer.java
+++ b/main/core/src/main/java/org/cryptomator/webdav/WebDavServer.java
@@ -40,6 +40,7 @@ public final class WebDavServer {
private static final int MAX_THREADS = 200;
private static final int MIN_THREADS = 4;
private static final int THREAD_IDLE_SECONDS = 20;
+ private static final int CONNECTION_IDLE_MILLIS = 100; // idle connection slow down random access on WebDAVFS for some reason. reconnect overhead can be tolerated
private final Server server;
private final ServerConnector localConnector;
private final ContextHandlerCollection servletCollection;
@@ -50,11 +51,14 @@ public final class WebDavServer {
server = new Server(tp);
localConnector = new ServerConnector(server);
localConnector.setHost(LOCALHOST);
+ localConnector.setIdleTimeout(CONNECTION_IDLE_MILLIS);
servletCollection = new ContextHandlerCollection();
- final ServletContextHandler servletContext = new ServletContextHandler(servletCollection, "/", ServletContextHandler.NO_SESSIONS);
- final ServletHolder servlet = new ServletHolder(WindowsSucksServlet.class);
- servletContext.addServlet(servlet, "/");
+ if (SystemUtils.IS_OS_WINDOWS) {
+ final ServletContextHandler servletContext = new ServletContextHandler(servletCollection, "/", ServletContextHandler.NO_SESSIONS);
+ final ServletHolder servlet = new ServletHolder(WindowsSucksServlet.class);
+ servletContext.addServlet(servlet, "/");
+ }
server.setConnectors(new Connector[] {localConnector});
server.setHandler(servletCollection);