diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-01-28 13:43:48 +0100 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-01-28 14:55:17 +0100 |
commit | 9b79004bd2f01f07fe07009002275a857f32a8b9 (patch) | |
tree | 992dca3b48cf0a0ba4ba474e08ae3ac16f373b6b /server | |
parent | e2f26c73c3a2fe0fd1f3d14c9d737c919874cad1 (diff) | |
download | sonarqube-9b79004bd2f01f07fe07009002275a857f32a8b9.tar.gz sonarqube-9b79004bd2f01f07fe07009002275a857f32a8b9.zip |
SONAR-7166 fix check of projectKey for branches analyses
Diffstat (limited to 'server')
2 files changed, 21 insertions, 5 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStep.java index f3596cc2557..f602a4e027b 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStep.java @@ -44,11 +44,8 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { @Override public void execute() { BatchReport.Metadata reportMetadata = reportReader.readMetadata(); - checkState( - ceTask.getComponentKey().equals(reportMetadata.getProjectKey()), - "ProjectKey in report (%s) is not consistent with projectKey under which the report as been submitted (%s)", - reportMetadata.getProjectKey(), - ceTask.getComponentKey()); + + checkProjectKeyConsistency(reportMetadata); mutableAnalysisMetadataHolder.setRootComponentRef(reportMetadata.getRootComponentRef()); mutableAnalysisMetadataHolder.setBranch(reportMetadata.hasBranch() ? reportMetadata.getBranch() : null); @@ -56,6 +53,22 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { mutableAnalysisMetadataHolder.setCrossProjectDuplicationEnabled(reportMetadata.hasCrossProjectDuplicationActivated() && reportMetadata.getCrossProjectDuplicationActivated()); } + private void checkProjectKeyConsistency(BatchReport.Metadata reportMetadata) { + String reportProjectKey = projectKeyFromReport(reportMetadata); + checkState( + ceTask.getComponentKey().equals(reportProjectKey), + "ProjectKey in report (%s) is not consistent with projectKey under which the report as been submitted (%s)", + reportProjectKey, + ceTask.getComponentKey()); + } + + private static String projectKeyFromReport(BatchReport.Metadata reportMetadata) { + if (reportMetadata.hasBranch()) { + return reportMetadata.getProjectKey() + ":" + reportMetadata.getBranch(); + } + return reportMetadata.getProjectKey(); + } + @Override public String getDescription() { return "Load analysis metadata"; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStepTest.java index 9d4032fcde6..762c507f09f 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStepTest.java @@ -79,6 +79,9 @@ public class LoadReportAnalysisMetadataHolderStepTest { .setBranch(BRANCH) .build()); + CeTask ceTask = createCeTask(PROJECT_KEY + ":" + BRANCH); + ComputationStep underTest = new LoadReportAnalysisMetadataHolderStep(ceTask, reportReader, analysisMetadataHolder); + underTest.execute(); assertThat(analysisMetadataHolder.getBranch()).isEqualTo(BRANCH); |