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(),