Open auto-closeable resources in try-with-resource

Change-Id: I3097e922c1b238657a77dadeaabce8035cd28467
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java
index adc280a..fb4aa0f 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java
@@ -62,9 +62,9 @@
     if (name == null) {
       return;
     }
-    Writer out = startRenderText(req, res);
-    out.write(RefServlet.sanitizeRefForText(name));
-    out.close();
+    try (Writer out = startRenderText(req, res)) {
+      out.write(RefServlet.sanitizeRefForText(name));
+    }
   }
 
   @Override
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java
index f0df112..ca35727 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java
@@ -179,22 +179,21 @@
       return;
     }
 
-    Writer writer = startRenderText(req, res);
-    for (RepositoryDescription repo : descs.values()) {
-      for (String name : branches) {
-        String ref = repo.branches.get(name);
-        if (ref == null) {
-          // Print stub (forty '-' symbols)
-          ref = "----------------------------------------";
+    try (Writer writer = startRenderText(req, res)) {
+      for (RepositoryDescription repo : descs.values()) {
+        for (String name : branches) {
+          String ref = repo.branches.get(name);
+          if (ref == null) {
+            // Print stub (forty '-' symbols)
+            ref = "----------------------------------------";
+          }
+          writer.write(ref);
+          writer.write(' ');
         }
-        writer.write(ref);
-        writer.write(' ');
+        writer.write(GitilesUrls.NAME_ESCAPER.apply(stripPrefix(prefix, repo.name)));
+        writer.write('\n');
       }
-      writer.write(GitilesUrls.NAME_ESCAPER.apply(stripPrefix(prefix, repo.name)));
-      writer.write('\n');
     }
-    writer.flush();
-    writer.close();
   }
 
   @Override
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
index e9f95a7..fd3f3f9 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
@@ -225,11 +225,15 @@
   }
 
   private static RevWalk newWalk(Repository repo, GitilesView view, GitilesAccess access)
-      throws MissingObjectException, IncorrectObjectTypeException, IOException {
+      throws MissingObjectException, IOException {
     RevWalk walk = new RevWalk(repo);
-    walk.markStart(walk.parseCommit(view.getRevision().getId()));
-    if (view.getOldRevision() != Revision.NULL) {
-      walk.markUninteresting(walk.parseCommit(view.getOldRevision().getId()));
+    try {
+      walk.markStart(walk.parseCommit(view.getRevision().getId()));
+      if (view.getOldRevision() != Revision.NULL) {
+        walk.markUninteresting(walk.parseCommit(view.getOldRevision().getId()));
+      }
+    } catch (IncorrectObjectTypeException iote) {
+      return null;
     }
     setTreeFilter(walk, view, access);
     List<RevFilter> filters = new ArrayList<>(3);
@@ -288,25 +292,18 @@
       return null;
     }
 
-    RevWalk walk = null;
-    try {
-      walk = newWalk(repo, view, access);
-    } catch (IncorrectObjectTypeException e) {
-      return null;
-    }
+    try (RevWalk walk = newWalk(repo, view, access)) {
+      if (walk == null) {
+        return null;
+      }
 
-    Optional<ObjectId> start;
-    try {
-      start = getStart(view.getParameters(), walk.getObjectReader());
-    } catch (IOException e) {
-      walk.close();
-      throw e;
-    }
-    if (start == null) {
-      return null;
-    }
+      Optional<ObjectId> start = getStart(view.getParameters(), walk.getObjectReader());
+      if (start == null) {
+        return null;
+      }
 
-    return new Paginator(walk, getLimit(view), start.orNull());
+      return new Paginator(walk, getLimit(view), start.orNull());
+    }
   }
 
   private static int getLimit(GitilesView view) {
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
index bd6219b..91e7060 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
@@ -390,8 +390,7 @@
 
       RevTree root = getRoot(view, rw);
       String path = view.getPathPart();
-      TreeWalk tw = new TreeWalk(rw.getObjectReader());
-      try {
+      try (TreeWalk tw = new TreeWalk(rw.getObjectReader())) {
         tw.addTree(root);
         tw.setRecursive(false);
         if (path.isEmpty()) {
@@ -415,7 +414,6 @@
       } catch (IOException | RuntimeException e) {
         // Fallthrough.
       }
-      tw.close();
       return null;
     }
 
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java
index 822f2c4..9007928 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java
@@ -222,24 +222,25 @@
     }
 
     ObjectReader reader = rw.getObjectReader();
-    TreeWalk tw = TreeWalk.forPath(reader, path, root);
-    if (tw == null) {
+    try (TreeWalk tw = TreeWalk.forPath(reader, path, root)) {
+      if (tw == null) {
+        return null;
+      }
+      if ((tw.getRawMode(0) & TYPE_MASK) == TYPE_TREE) {
+        if (findIndexFile(tw)) {
+          path = tw.getPathString();
+        } else {
+          return null;
+        }
+      }
+      if ((tw.getRawMode(0) & TYPE_MASK) == TYPE_FILE) {
+        if (!path.endsWith(".md")) {
+          return null;
+        }
+        return new MarkdownFile(path, tw.getObjectId(0));
+      }
       return null;
     }
-    if ((tw.getRawMode(0) & TYPE_MASK) == TYPE_TREE) {
-      if (findIndexFile(tw)) {
-        path = tw.getPathString();
-      } else {
-        return null;
-      }
-    }
-    if ((tw.getRawMode(0) & TYPE_MASK) == TYPE_FILE) {
-      if (!path.endsWith(".md")) {
-        return null;
-      }
-      return new MarkdownFile(path, tw.getObjectId(0));
-    }
-    return null;
   }
 
   private static boolean findIndexFile(TreeWalk tw) throws IOException {