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 6f1f247..846c3c1 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
@@ -225,16 +225,19 @@
     res.setStatus(SC_OK);
 
     Writer writer = getWriter(res);
-    new GsonBuilder()
-      .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
-      .setPrettyPrinting()
-      .generateNonExecutableJson()
-      .create()
-      .toJson(src, typeOfSrc, writer);
+    newGsonBuilder(req).create().toJson(src, typeOfSrc, writer);
     writer.write('\n');
     writer.close();
   }
 
+  @SuppressWarnings("unused") // Used in subclasses.
+  protected GsonBuilder newGsonBuilder(HttpServletRequest req) throws IOException {
+    return new GsonBuilder()
+      .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
+      .setPrettyPrinting()
+      .generateNonExecutableJson();
+  }
+
   /**
    * @see #startRenderText(HttpServletRequest, HttpServletResponse)
    * @param req in-progress request.
