Merge "Write error log with change ID when replaying a change fails"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
index 7c22a9e..dcb2ceb 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
@@ -21,6 +21,7 @@
 import com.google.gerrit.extensions.common.ChangeInfo;
 import com.google.gerrit.extensions.restapi.BadRequestException;
 import com.google.gerrit.extensions.restapi.RestApiException;
+import com.google.gerrit.extensions.restapi.Url;
 import com.google.gerrit.reviewdb.client.Branch;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.client.Project;
@@ -39,6 +40,8 @@
 import org.eclipse.jgit.lib.ProgressMonitor;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevWalk;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.Collections;
@@ -59,6 +62,8 @@
         ProgressMonitor pm);
   }
 
+  private static Logger log = LoggerFactory.getLogger(ReplayChangesStep.class);
+
   private final ReplayRevisionsStep.Factory replayRevisionsFactory;
   private final ReplayInlineCommentsStep.Factory replayInlineCommentsFactory;
   private final ReplayMessagesStep.Factory replayMessagesFactory;
@@ -130,7 +135,13 @@
     RevWalk rw = new RevWalk(repo);
     try {
       for (ChangeInfo c : changes) {
-        replayChange(rw, c);
+        try {
+          replayChange(rw, c);
+        } catch (Exception e) {
+          log.error(String.format("Failed to replay change %s.",
+              Url.decode(c.id)), e);
+          throw e;
+        }
         pm.update(1);
       }
     } finally {