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);