summaryrefslogtreecommitdiffstats
path: root/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
diff options
context:
space:
mode:
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.java18
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()) {