diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java index 55eb8a9b9cbf..1cfa49967dd5 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java @@ -81,6 +81,7 @@ public class Server extends HandlerWrapper implements Attributes private final List _connectors = new CopyOnWriteArrayList<>(); private SessionIdManager _sessionIdManager; private String _tmpDirPosixPerms = "rwx------"; + private boolean _workDirPersistent = true; private boolean _stopAtShutdown; private boolean _dumpAfterStart = false; private boolean _dumpBeforeStop = false; @@ -216,6 +217,11 @@ public String getTempDirectoryPosixPermissions() return _tmpDirPosixPerms; } + public boolean isWorkDirectoryPersistent() + { + return _workDirPersistent; + } + /** * @return Returns the connectors. */ @@ -600,6 +606,11 @@ public void setTempDirectoryPosixPermissions(String perms) _tmpDirPosixPerms = perms; } + public void setWorkDirectoryPersistent(boolean flag) + { + _workDirPersistent = flag; + } + /* * @see org.eclipse.util.AttributesMap#clearAttributes() */ diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java index d81885c220e1..b49202393b87 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java @@ -460,7 +460,10 @@ public void resolveTempDirectory(WebAppContext context) File work = new File(jettyBase, "work"); if (work.exists() && work.isDirectory() && work.canWrite()) { - context.setPersistTempDirectory(true); + if (context.getServer().isWorkDirectoryPersistent()) + { + context.setPersistTempDirectory(true); + } makeTempDirectory(work, context); return; }