[Refactoring] mutualize check of review existence
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
index 0d0cefd..55fbc74 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
@@ -137,14 +137,14 @@
     final ChangeAttribute change = newComment.change;
     final int reviewNumber = Integer.parseInt(change.number);
     try {
-      api.changes().id(reviewNumber).get(EnumSet.of(ListChangesOption.CURRENT_REVISION));
+      checkReviewExists(reviewNumber);
       if (newComment.author.email == config.getBotEmail()) {
         return;
       }
-      final String topic = change.topic;
       if (atomicityHelper.isSubmittable(Integer.parseInt(newComment.change.number))) {
         log.info(String.format("Change %d is submittable. Will try to merge all related changes.", reviewNumber));
         final List<ChangeInfo> related = Lists.newArrayList();
+        final String topic = change.topic;
         if (topic != null) {
           related.addAll(api.changes().query("status: open AND topic: " + topic)
               .withOption(ListChangesOption.CURRENT_REVISION).get());
@@ -183,11 +183,7 @@
   private void processNewAtomicPatchSet(final ChangeAttribute change) {
     final int reviewNumber = Integer.parseInt(change.number);
     try {
-      api.changes().id(reviewNumber).get(EnumSet.of(ListChangesOption.CURRENT_REVISION));
-    } catch (final RestApiException e1) {
-      throw new RuntimeException(e1);
-    }
-    try {
+      checkReviewExists(reviewNumber);
       if (atomicityHelper.hasDependentReview(reviewNumber)) {
         log.info(String.format("Setting -2 on change %d, other atomic changes exists on the same repository.",
             reviewNumber));
@@ -196,12 +192,15 @@
         log.info(String.format("Detected atomic review on change %d.", reviewNumber));
         reviewUpdater.commentOnReview(reviewNumber, AutomergeConfig.ATOMIC_REVIEW_DETECTED_FILE);
       }
-    } catch (AuthException | BadRequestException | UnprocessableEntityException | IOException | NoSuchChangeException
-        | OrmException e) {
+    } catch (RestApiException | IOException | NoSuchChangeException | OrmException e) {
       throw new RuntimeException(e);
     }
   }
 
+  private void checkReviewExists(int reviewNumber) throws RestApiException {
+    api.changes().id(reviewNumber).get(EnumSet.of(ListChangesOption.CURRENT_REVISION));
+  }
+
   @Override
   public void start() {
     log.info("Starting automatic merger plugin.");
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java b/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java
index 01923de..18e0b89 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java
@@ -5,6 +5,7 @@
 import com.google.gerrit.extensions.api.changes.ReviewInput;
 import com.google.gerrit.extensions.restapi.AuthException;
 import com.google.gerrit.extensions.restapi.BadRequestException;
+import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Change;
@@ -55,8 +56,7 @@
   @Inject
   Provider<PostReview> reviewer;
 
-  public void commentOnReview(final int number, final String commentTemplate) throws NoSuchChangeException,
-  OrmException, AuthException, BadRequestException, UnprocessableEntityException, IOException {
+  public void commentOnReview(final int number, final String commentTemplate) throws RestApiException, OrmException, IOException, NoSuchChangeException {
     final ReviewInput message = new ReviewInput();
     message.message = getCommentFromFile(commentTemplate);
     final Set<Account.Id> ids = byEmailCache.get(config.getBotEmail());
@@ -80,8 +80,7 @@
     }
   }
 
-  public void setMinusTwo(final int number, final String commentTemplate) throws NoSuchChangeException, OrmException,
-  AuthException, BadRequestException, UnprocessableEntityException, IOException {
+  public void setMinusTwo(final int number, final String commentTemplate) throws RestApiException, OrmException, IOException, NoSuchChangeException {
     final ReviewInput message = new ReviewInput();
     message.message = getCommentFromFile(commentTemplate);
     message.label("Code-Review", -2);