Prefer early exit when commit is not on refs/changes ref

Currently some resource get allocated even when operating on wrong refs, i. e.
drafts or meta/config. Exit immediately if ref does not start with refs/changes.

Change-Id: I7c427095fe230b0a3b4255c8deb6daa5032b76c5
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/RefUpdateListener.java b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/RefUpdateListener.java
index 2299148..9d2474f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/RefUpdateListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/RefUpdateListener.java
@@ -81,6 +81,9 @@
 
   @Override
   public void onGitReferenceUpdated(final Event e) {
+    if (!e.getRefName().startsWith("refs/changes/")) {
+      return;
+    }
     Project.NameKey projectName = new Project.NameKey(e.getProjectName());
 
     int maxReviewers;
@@ -113,65 +116,62 @@
     try {
       reviewDb = schemaFactory.open();
       try {
-        if (e.getRefName().startsWith("refs/changes/")) {
+        PatchSet.Id psId = PatchSet.Id.fromRef(e.getRefName());
+        PatchSet ps = reviewDb.patchSets().get(psId);
+        if (ps == null) {
+          log.warn("No patch set found for " + e.getRefName());
+          return;
+        }
 
-          PatchSet.Id psId = PatchSet.Id.fromRef(e.getRefName());
-          PatchSet ps = reviewDb.patchSets().get(psId);
-          if (ps == null) {
-            log.warn("No patch set found for " + e.getRefName());
-            return;
-          }
+        final Change change = reviewDb.changes().get(psId.getParentKey());
+        if (change == null) {
+          log.warn("No change found for " + e.getRefName());
+          return;
+        }
 
-          final Change change = reviewDb.changes().get(psId.getParentKey());
-          if (change == null) {
-            log.warn("No change found for " + e.getRefName());
-            return;
-          }
+        final RevCommit commit =
+            rw.parseCommit(ObjectId.fromString(e.getNewObjectId()));
 
-          final RevCommit commit =
-              rw.parseCommit(ObjectId.fromString(e.getNewObjectId()));
+        final Runnable task =
+            reviewersByBlameFactory.create(commit, change, ps, maxReviewers, git);
 
-          final Runnable task =
-              reviewersByBlameFactory.create(commit, change, ps, maxReviewers, git);
+        workQueue.getDefaultQueue().submit(new Runnable() {
+          public void run() {
+            RequestContext old = tl.setContext(new RequestContext() {
 
-          workQueue.getDefaultQueue().submit(new Runnable() {
-            public void run() {
-              RequestContext old = tl.setContext(new RequestContext() {
+              @Override
+              public CurrentUser getCurrentUser() {
+                return identifiedUserFactory.create(change.getOwner());
+              }
 
-                @Override
-                public CurrentUser getCurrentUser() {
-                  return identifiedUserFactory.create(change.getOwner());
-                }
-
-                @Override
-                public Provider<ReviewDb> getReviewDbProvider() {
-                  return new Provider<ReviewDb>() {
-                    @Override
-                    public ReviewDb get() {
-                      if (db == null) {
-                        try {
-                          db = schemaFactory.open();
-                        } catch (OrmException e) {
-                          throw new ProvisionException("Cannot open ReviewDb", e);
-                        }
+              @Override
+              public Provider<ReviewDb> getReviewDbProvider() {
+                return new Provider<ReviewDb>() {
+                  @Override
+                  public ReviewDb get() {
+                    if (db == null) {
+                      try {
+                        db = schemaFactory.open();
+                      } catch (OrmException e) {
+                        throw new ProvisionException("Cannot open ReviewDb", e);
                       }
-                      return db;
                     }
-                  };
-                }
-              });
-              try {
-                task.run();
-              } finally {
-                tl.setContext(old);
-                if (db != null) {
-                  db.close();
-                  db = null;
-                }
+                    return db;
+                  }
+                };
+              }
+            });
+            try {
+              task.run();
+            } finally {
+              tl.setContext(old);
+              if (db != null) {
+                db.close();
+                db = null;
               }
             }
-          });
-        }
+          }
+        });
       } catch (OrmException x) {
         log.error(x.getMessage(), x);
       } catch (MissingObjectException x) {