Merge "ServletTest: base class for servlet tests"
diff --git a/VERSION b/VERSION
index f69acc1..421b8d9 100644
--- a/VERSION
+++ b/VERSION
@@ -4,4 +4,4 @@
 # we currently have no stable releases, we use the "build number" scheme
 # described at:
 # http://mojo.codehaus.org/versions-maven-plugin/version-rules.html
-GITILES_VERSION = '0.1-4'
+GITILES_VERSION = '0.1-5'
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
index 5c9fd36..240a3a7 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
@@ -58,7 +58,7 @@
   static void setNotCacheable(HttpServletResponse res) {
     res.setHeader(HttpHeaders.CACHE_CONTROL, "no-cache, no-store, max-age=0, must-revalidate");
     res.setHeader(HttpHeaders.PRAGMA, "no-cache");
-    res.setHeader(HttpHeaders.EXPIRES, "Fri, 01 Jan 1990 00:00:00 GMT");
+    res.setHeader(HttpHeaders.EXPIRES, "Mon, 01 Jan 1990 00:00:00 GMT");
     res.setDateHeader(HttpHeaders.DATE, new Instant().getMillis());
   }
 
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
index 733da0a..9e5a9fe 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
@@ -56,6 +56,7 @@
 
   private Linkifier linkifier;
   private RevWalk walk;
+  private CommitData.Builder cdb;
   private ArchiveFormat archiveFormat;
 
   CommitSoyData setLinkifier(@Nullable Linkifier linkifier) {
@@ -76,7 +77,11 @@
   Map<String, Object> toSoyData(HttpServletRequest req, RevCommit c, Set<Field> fs,
       DateFormatter df) throws IOException {
     GitilesView view = ViewFilter.getView(req);
-    CommitData cd = new CommitData.Builder()
+    if (cdb == null) {
+      cdb = new CommitData.Builder();
+    }
+
+    CommitData cd = cdb
         .setRevWalk(walk)
         .setArchiveFormat(archiveFormat)
         .build(req, c, fs);
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
index 244bbc8..0508561 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
@@ -47,6 +47,7 @@
   private final Set<Field> fields;
   private final String pretty;
   private final String variant;
+  private CommitSoyData csd;
 
   public LogSoyData(HttpServletRequest req, GitilesAccess access, String pretty)
       throws IOException {
@@ -97,7 +98,11 @@
 
   private Map<String, Object> toEntrySoyData(Paginator paginator, RevCommit c, DateFormatter df,
       boolean first) throws IOException {
-    Map<String, Object> entry = new CommitSoyData().setRevWalk(paginator.getWalk())
+    if (csd == null) {
+      csd = new CommitSoyData();
+    }
+
+    Map<String, Object> entry = csd.setRevWalk(paginator.getWalk())
         .toSoyData(req, c, fields, df);
     return ImmutableMap.of(
         "firstWithPrevious", first && paginator.getPreviousStart() != null,
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
index 2965923..32359db 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
@@ -130,8 +130,8 @@
     return list.size() > REF_LIMIT ? list.subList(0, REF_LIMIT) : list;
   }
 
-  private Map<String, Object> renderReadme(RevWalk walk, GitilesView view,
-      Config cfg, RevObject head) throws IOException {
+  private static Map<String, Object> renderReadme(RevWalk walk,
+      GitilesView view, Config cfg, RevObject head) throws IOException {
     RevTree rootTree;
     try {
       rootTree = walk.parseTree(head);
diff --git a/lib/jgit/BUCK b/lib/jgit/BUCK
index 3df8752..bced6fb 100644
--- a/lib/jgit/BUCK
+++ b/lib/jgit/BUCK
@@ -1,10 +1,10 @@
-REPO = GERRIT
-VERS = '4.0.0.201505191015-rc1.19-g1773002'
+REPO = MAVEN_CENTRAL
+VERS = '4.0.1.201506240215-r'
 
 maven_jar(
   name = 'jgit',
   id = 'org.eclipse.jgit:org.eclipse.jgit:' + VERS,
-  sha1 = '4db24b39dab8dc0e889807383728032945f461be',
+  sha1 = '3bdf2d666df1a5373f7ad291c075ab1329560afd',
   repository = REPO,
   unsign = True,
   deps = [':ewah'],
@@ -18,7 +18,7 @@
 maven_jar(
   name = 'jgit-servlet',
   id = 'org.eclipse.jgit:org.eclipse.jgit.http.server:' + VERS,
-  sha1 = '7bfdbddea56a87f3f2687ae6abf2c5bdae649f0c',
+  sha1 = '8c73719477224802eda2a2da65bce8946d0fac6f',
   repository = REPO,
   deps = [':jgit'],
   unsign = True,
@@ -41,7 +41,7 @@
 maven_jar(
   name = 'jgit-archive_library',
   id = 'org.eclipse.jgit:org.eclipse.jgit.archive:' + VERS,
-  sha1 = '08fce6b89f6d1e78f99869d542d70899f3be9c9f',
+  sha1 = '124e353f51adbbc1af12b143012cc1ebfa2c1012',
   repository = REPO,
   deps = [':jgit'],
   unsign = True,
@@ -54,7 +54,7 @@
 maven_jar(
   name = 'junit',
   id = 'org.eclipse.jgit:org.eclipse.jgit.junit:' + VERS,
-  sha1 = 'a54c16076e6cbdb9113565a82cffa5f268ae8e3b',
+  sha1 = 'bddb62b8f532b6d46ac832d909fa46b73c40a126',
   repository = REPO,
   unsign = True,
   deps = [':jgit'],