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(); } }