CommandProcessorImpl: streamline exception logging

Log any exception from the already existing outer try-catch block.
Remove inner try-catch blocks and add toString() method to all Command
subclasses so that we can log cmd object.

Change-Id: Id86ec855f046e73409616e3fef0b195b619e4ffd
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/AddToProjectList.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/AddToProjectList.java
index 4883dda..b368746 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/AddToProjectList.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/AddToProjectList.java
@@ -30,4 +30,9 @@
   public String getProjectName() {
     return projectName;
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + projectName + "]";
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/Command.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/Command.java
index 1b7b86e..3bcfb3f 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/Command.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/Command.java
@@ -25,4 +25,9 @@
     this.type = type;
     this.eventCreatedOn = eventCreatedOn;
   }
+
+  @Override
+  public String toString() {
+    return type.toString();
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/CommandProcessorImpl.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/CommandProcessorImpl.java
index 359a578..9dd964a 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/CommandProcessorImpl.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/CommandProcessorImpl.java
@@ -30,7 +30,6 @@
 import com.google.gerrit.server.events.Event;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import java.io.IOException;
 import java.time.Instant;
 
 @Singleton
@@ -71,36 +70,23 @@
     boolean success = false;
 
     try {
-
       if (cmd instanceof IndexChange) {
         IndexChange indexChange = (IndexChange) cmd;
-        try {
-          ForwardedIndexChangeHandler handler =
-              indexChange.isBatch() ? indexBatchChangeHandler : indexChangeHandler;
-          if (indexChange instanceof IndexChange.Delete) {
-            handler.delete(indexChange.getId());
-            log.atFine().log("Change index delete on change %s done", indexChange.getId());
-          } else {
-            ChangeIndexEvent event = toChangeIndexEvent(indexChange);
-            handler.index(indexChange.getId(), event);
-            log.atFine().log("Change index update on change %s done", indexChange.getId());
-          }
-        } catch (Exception e) {
-          log.atSevere().withCause(e).log(
-              "Change index operation on change %s failed", indexChange.getId());
-          throw e;
+        ForwardedIndexChangeHandler handler =
+            indexChange.isBatch() ? indexBatchChangeHandler : indexChangeHandler;
+        if (indexChange instanceof IndexChange.Delete) {
+          handler.delete(indexChange.getId());
+          log.atFine().log("Change index delete on change %s done", indexChange.getId());
+        } else {
+          ChangeIndexEvent event = toChangeIndexEvent(indexChange);
+          handler.index(indexChange.getId(), event);
+          log.atFine().log("Change index update on change %s done", indexChange.getId());
         }
 
       } else if (cmd instanceof IndexAccount) {
         IndexAccount indexAccount = (IndexAccount) cmd;
-        try {
-          indexAccountHandler.index(Account.id(indexAccount.getId()));
-          log.atFine().log("Account index update on account %s done", indexAccount.getId());
-        } catch (IOException e) {
-          log.atSevere().withCause(e).log(
-              "Account index update on account %s failed", indexAccount.getId());
-          throw e;
-        }
+        indexAccountHandler.index(Account.id(indexAccount.getId()));
+        log.atFine().log("Account index update on account %s done", indexAccount.getId());
 
       } else if (cmd instanceof EvictCache) {
         EvictCache evictCommand = (EvictCache) cmd;
@@ -123,6 +109,7 @@
       }
       success = true;
     } catch (Exception e) {
+      log.atSevere().withCause(e).log("Error processing command %s", cmd);
       success = false;
     }
     metrics.record(cmd.eventCreatedOn, startTime, success);
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/DeleteAllProjectChangesFromIndex.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/DeleteAllProjectChangesFromIndex.java
index 532708b..d13fce7 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/DeleteAllProjectChangesFromIndex.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/DeleteAllProjectChangesFromIndex.java
@@ -31,4 +31,9 @@
   public String getProjectName() {
     return projectName.get();
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + projectName + "]";
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/EvictCache.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/EvictCache.java
index 151b839..9e35ea7 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/EvictCache.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/EvictCache.java
@@ -36,4 +36,9 @@
   public String getKeyJson() {
     return keyJson;
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + cacheName + ", " + keyJson + "]";
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexAccount.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexAccount.java
index 6c95d1d..d4f0ca1 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexAccount.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexAccount.java
@@ -30,4 +30,9 @@
   public int getId() {
     return id;
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + id + "]";
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexChange.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexChange.java
index 0143ba5..7f528d8 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexChange.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexChange.java
@@ -53,6 +53,11 @@
     return batchMode;
   }
 
+  @Override
+  public String toString() {
+    return type + "[" + getId() + "]";
+  }
+
   public static class Update extends IndexChange {
     static final EventType TYPE = EventType.INDEX_CHANGE_UPDATE;
 
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexGroup.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexGroup.java
index 3ae8458..78ea596 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexGroup.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexGroup.java
@@ -30,4 +30,9 @@
   public String getUuid() {
     return uuid;
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + uuid + "]";
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexProject.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexProject.java
index 7feffc4..98480ba 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexProject.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/IndexProject.java
@@ -30,4 +30,9 @@
   public String getProjectName() {
     return projectName;
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + projectName + "]";
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/PostEvent.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/PostEvent.java
index 18c17c7..9ab0249 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/PostEvent.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/PostEvent.java
@@ -31,4 +31,9 @@
   public Event getEvent() {
     return event;
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + event + "]";
+  }
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/RemoveFromProjectList.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/RemoveFromProjectList.java
index b1ee7df..bcfe63d 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/RemoveFromProjectList.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/RemoveFromProjectList.java
@@ -30,4 +30,9 @@
   public String getProjectName() {
     return projectName;
   }
+
+  @Override
+  public String toString() {
+    return type + "[" + projectName + "]";
+  }
 }