Refactor XDocServlet: Move commit readable check into helper method Change-Id: I9567a8b5e93abc83fe833dba459a3204f7d5bd27 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java index 8bb64c5..2e83484 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java +++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
@@ -133,16 +133,7 @@ ObjectId revId = resolveRevision(repo, rev); if (ObjectId.isId(rev)) { - RevWalk rw = new RevWalk(repo); - try { - RevCommit commit = rw.parseCommit(repo.resolve(rev)); - if (!projectControl.canReadCommit(db.get(), rw, commit)) { - Resource.NOT_FOUND.send(req, res); - return; - } - } finally { - rw.release(); - } + validateCanReadCommit(repo, projectControl, revId); } String eTag = null; @@ -285,6 +276,20 @@ return revId; } + private void validateCanReadCommit(Repository repo, + ProjectControl projectControl, ObjectId revId) + throws ResourceNotFoundException, IOException { + RevWalk rw = new RevWalk(repo); + try { + RevCommit commit = rw.parseCommit(revId); + if (!projectControl.canReadCommit(db.get(), rw, commit)) { + throw new ResourceNotFoundException(); + } + } finally { + rw.release(); + } + } + private static String computeETag(Project.NameKey project, ObjectId revId, String file) { return Hashing.md5().newHasher()