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