diff options
Diffstat (limited to 'gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java')
-rw-r--r-- | gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java index 6c37e43945..ba7a5b866f 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java @@ -30,6 +30,7 @@ package com.google.gerrit.httpd.gitweb; import com.google.gerrit.common.data.GerritConfig; +import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.httpd.GitWebConfig; import com.google.gerrit.launcher.GerritLauncher; import com.google.gerrit.reviewdb.client.Project; @@ -39,6 +40,7 @@ import com.google.gerrit.server.config.SitePaths; import com.google.gerrit.server.git.LocalDiskRepositoryManager; import com.google.gerrit.server.project.NoSuchProjectException; import com.google.gerrit.server.project.ProjectControl; +import com.google.gwtexpui.server.CacheHeaders; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; @@ -58,10 +60,8 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; -import java.net.URLDecoder; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; @@ -388,17 +388,14 @@ class GitWebServlet extends HttpServlet { return; } try { - rsp.setHeader("Expires", "Fri, 01 Jan 1980 00:00:00 GMT"); - rsp.setHeader("Pragma", "no-cache"); - rsp.setHeader("Cache-Control", "no-cache, must-revalidate"); + CacheHeaders.setNotCacheable(rsp); exec(req, rsp, project, repo); } finally { repo.close(); } } - private static Map<String, String> getParameters(final HttpServletRequest req) - throws UnsupportedEncodingException { + private static Map<String, String> getParameters(HttpServletRequest req) { final Map<String, String> params = new HashMap<String, String>(); for (final String pair : req.getQueryString().split("[&;]")) { final int eq = pair.indexOf('='); @@ -406,8 +403,8 @@ class GitWebServlet extends HttpServlet { String name = pair.substring(0, eq); String value = pair.substring(eq + 1); - name = URLDecoder.decode(name, "UTF-8"); - value = URLDecoder.decode(value, "UTF-8"); + name = Url.decode(name); + value = Url.decode(value); params.put(name, value); } } @@ -419,7 +416,8 @@ class GitWebServlet extends HttpServlet { final Repository repo) throws IOException { final Process proc = Runtime.getRuntime().exec(new String[] {gitwebCgi.getAbsolutePath()}, - makeEnv(req, project), repo.getDirectory()); + makeEnv(req, project), + gitwebCgi.getAbsoluteFile().getParentFile()); copyStderrToLog(proc.getErrorStream()); if (0 < req.getContentLength()) { |