Merge ""Bad request" when importing a non-existing project"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
index d666879..bac5c11 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
@@ -180,6 +180,8 @@
     ProgressMonitor pm = err != null ? new TextProgressMonitor(err) :
         NullProgressMonitor.INSTANCE;
 
+    checkProjectInSource(input, pm);
+
     try {
       setParentProjectName(input, pm);
       checkPreconditions(pm);
@@ -211,6 +213,13 @@
     return Response.<String> ok("OK");
   }
 
+  private void checkProjectInSource(Input input, ProgressMonitor pm)
+      throws IOException, BadRequestException {
+    pm.beginTask("Check source project", 1);
+    new RemoteApi(input.from, input.user, input.pass).getProject(project.get());
+    updateAndEnd(pm);
+  }
+
   private void setParentProjectName(Input input, ProgressMonitor pm)
       throws IOException, BadRequestException {
     pm.beginTask("Set parent project", 1);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java b/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java
index 5d20f01..d48ca5d 100755
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java
@@ -105,6 +105,12 @@
       throw new BadRequestException(
           "invalid credentials: accessing source system failed with 401 Unauthorized");
     }
+    if (r.getStatusCode() == HttpStatus.SC_NOT_FOUND) {
+      throw new BadRequestException(
+          "Project not found or missing permissions for accessing the project:"
+          + " accessing source system failed with 404 Not found");
+    }
+
     if (r.getStatusCode() < 200 || 300 <= r.getStatusCode()) {
       throw new IOException(String.format(
           "Unexpected response code for %s on %s : %s", method.name(),