in src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java [107:138]
public Resource load(String strKey) throws Exception {
XDocResourceKey key = XDocResourceKey.fromString(strKey);
try (Repository repo = repoManager.openRepository(key.getProject())) {
FormatterProvider formatter = getFormatter(key.getFormatter());
try (RevWalk rw = new RevWalk(repo)) {
String html = null;
if (key.getRevId() != null) {
html = loadHtml(formatter, repo, rw, key, key.getRevId());
}
if (key.getDiffMode() != DiffMode.NO_DIFF) {
String htmlB = loadHtml(formatter, repo, rw, key, checkRevId(key.getRevIdB()));
if (html == null && htmlB == null) {
throw new ResourceNotFoundException();
}
html = diffHtml(html, htmlB, key.getDiffMode());
} else {
if (html == null) {
throw new ResourceNotFoundException();
}
}
RevCommit commit =
rw.parseCommit(MoreObjects.firstNonNull(key.getRevIdB(), key.getRevId()));
return getAsHtmlResource(html, commit.getCommitTime());
}
} catch (ResourceNotFoundException e) {
return Resource.NOT_FOUND;
} catch (MethodNotAllowedException e) {
return Resources.METHOD_NOT_ALLOWED;
}
}