Ensure RevCommit is parsed before using its content

Ideally these methods in RevCommit should be calling parseBody.  As a
stopgap, we can do it ourselves.

No visible change intended.  This is intended as preparation for
callers to be able to use setRetainBody(false).

Change-Id: I084ff20b23220252130ba93aeeb7411359b06815
diff --git a/java/com/google/gitiles/CommitData.java b/java/com/google/gitiles/CommitData.java
index ef2ff95..705240e 100644
--- a/java/com/google/gitiles/CommitData.java
+++ b/java/com/google/gitiles/CommitData.java
@@ -100,9 +100,11 @@
       CommitData result = new CommitData();
 
       if (fs.contains(Field.AUTHOR)) {
+        walk.parseBody(c);
         result.author = c.getAuthorIdent();
       }
       if (fs.contains(Field.COMMITTER)) {
+        walk.parseBody(c);
         result.committer = c.getCommitterIdent();
       }
       if (fs.contains(Field.SHA)) {
@@ -144,9 +146,11 @@
         result.tags = getRefsById(repo, c, Constants.R_TAGS);
       }
       if (fs.contains(Field.MESSAGE)) {
+        walk.parseBody(c);
         result.message = c.getFullMessage();
       }
       if (fs.contains(Field.SHORT_MESSAGE)) {
+        walk.parseBody(c);
         String msg = c.getShortMessage();
         if (msg.length() > 80) {
           String ft = result.message;
diff --git a/java/com/google/gitiles/IdentRevFilter.java b/java/com/google/gitiles/IdentRevFilter.java
index 745debd..ef3ddf8 100644
--- a/java/com/google/gitiles/IdentRevFilter.java
+++ b/java/com/google/gitiles/IdentRevFilter.java
@@ -43,7 +43,7 @@
   @Override
   public boolean include(RevWalk walker, RevCommit commit)
       throws StopWalkException, MissingObjectException, IncorrectObjectTypeException, IOException {
-    return matchesPerson(getIdent(commit));
+    return matchesPerson(getIdent(walker, commit));
   }
 
   @Override
@@ -60,7 +60,8 @@
     return person.getName().contains(pattern) || person.getEmailAddress().contains(pattern);
   }
 
-  protected abstract PersonIdent getIdent(RevCommit commit);
+  protected abstract PersonIdent getIdent(RevWalk walk, RevCommit commit)
+      throws MissingObjectException, IOException;
 
   private static class Author extends IdentRevFilter {
     private Author(String author) {
@@ -68,7 +69,9 @@
     }
 
     @Override
-    protected PersonIdent getIdent(RevCommit commit) {
+    protected PersonIdent getIdent(RevWalk walk, RevCommit commit)
+        throws MissingObjectException, IOException {
+      walk.parseBody(commit);
       return commit.getAuthorIdent();
     }
   }
@@ -79,7 +82,9 @@
     }
 
     @Override
-    protected PersonIdent getIdent(RevCommit commit) {
+    protected PersonIdent getIdent(RevWalk walk, RevCommit commit)
+        throws MissingObjectException, IOException {
+      walk.parseBody(commit);
       return commit.getCommitterIdent();
     }
   }