aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-01-28 13:43:48 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-01-28 14:55:17 +0100
commit9b79004bd2f01f07fe07009002275a857f32a8b9 (patch)
tree992dca3b48cf0a0ba4ba474e08ae3ac16f373b6b /server
parente2f26c73c3a2fe0fd1f3d14c9d737c919874cad1 (diff)
downloadsonarqube-9b79004bd2f01f07fe07009002275a857f32a8b9.tar.gz
sonarqube-9b79004bd2f01f07fe07009002275a857f32a8b9.zip
SONAR-7166 fix check of projectKey for branches analyses
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStep.java23
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadReportAnalysisMetadataHolderStepTest.java3
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);