Avoid NPE when creating a project without initial revision data When creating a new project without an initial configuration would trigger the execution of the pull-replication create project API without the revision data. Avoid to throw NPE when the repository revision data is null. Change-Id: I46950f88651d8b1b536ea58d4759c3350e44d663
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 a69afa4..f9f2ffe 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
@@ -167,22 +167,24 @@ } String projectName = gitRepositoryName.replace(".git", ""); - try { - applyObjectCommand.applyObjects( - Project.nameKey(projectName), - input.getRefName(), - input.getRevisionsData(), - input.getLabel(), - input.getEventCreatedOn()); - } catch (MissingLatestPatchSetException e) { - repLog.error( - "Init project API FAILED from {} for {} - configuration data cannot contain change meta refs: {}:{}", - input.getLabel(), - projectName, - input.getRefName(), - Arrays.toString(input.getRevisionsData()), - e); - throw new BadRequestException("Configuration data cannot contain change meta refs", e); + if (input.getRevisionsData() != null && input.getRevisionsData().length > 0) { + try { + applyObjectCommand.applyObjects( + Project.nameKey(projectName), + input.getRefName(), + input.getRevisionsData(), + input.getLabel(), + input.getEventCreatedOn()); + } catch (MissingLatestPatchSetException e) { + repLog.error( + "Init project API FAILED from {} for {} - configuration data cannot contain change meta refs: {}:{}", + input.getLabel(), + projectName, + input.getRefName(), + Arrays.toString(input.getRevisionsData()), + e); + throw new BadRequestException("Configuration data cannot contain change meta refs", e); + } } projectCache.onCreateProject(Project.nameKey(projectName)); // In case pull-replication is used in conjunction with multi-site, by convention the remote