Make sure project is indexed after creation Currently ProjectInitializationAction#initProject only creates the project on filesystem, but doesn't index it. Added indexing after creation. Bug: Issue 16799 Change-Id: I34ac2d076d874d1b17c4afc31d8b775293306a47
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java index 2214fb3..8711379 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java +++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java
@@ -22,6 +22,7 @@ import com.google.gerrit.entities.RefNames; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.Url; +import com.google.gerrit.index.project.ProjectIndexer; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.permissions.GlobalPermission; import com.google.gerrit.server.permissions.PermissionBackend; @@ -49,15 +50,18 @@ private final GerritConfigOps gerritConfigOps; private final Provider<CurrentUser> userProvider; private final PermissionBackend permissionBackend; + private final ProjectIndexer projectIndexer; @Inject ProjectInitializationAction( GerritConfigOps gerritConfigOps, Provider<CurrentUser> userProvider, - PermissionBackend permissionBackend) { + PermissionBackend permissionBackend, + ProjectIndexer projectIndexer) { this.gerritConfigOps = gerritConfigOps; this.userProvider = userProvider; this.permissionBackend = permissionBackend; + this.projectIndexer = projectIndexer; } @Override @@ -106,6 +110,10 @@ } LocalFS localFS = new LocalFS(maybeUri.get()); Project.NameKey projectNameKey = Project.NameKey.parse(projectName); - return localFS.createProject(projectNameKey, RefNames.HEAD); + if (localFS.createProject(projectNameKey, RefNames.HEAD)) { + projectIndexer.index(projectNameKey); + return true; + } + return false; } }