]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6273 Really fix NPE when working on projects with branches
authorJulien HENRY <julien.henry@sonarsource.com>
Thu, 12 Mar 2015 17:27:13 +0000 (18:27 +0100)
committerJulien HENRY <julien.henry@sonarsource.com>
Thu, 12 Mar 2015 17:27:13 +0000 (18:27 +0100)
sonar-batch/src/main/java/org/sonar/batch/report/ComponentsPublisher.java
sonar-batch/src/test/java/org/sonar/batch/report/ComponentsPublisherTest.java

index 950fa923ddfe23d38c8870366b18eea84a8bf159..186f4368d6e3eece059d818e0d360abcda125cf2 100644 (file)
@@ -92,7 +92,7 @@ public class ComponentsPublisher implements ReportPublisher {
       builder.addChildRefs(child.batchId());
     }
     if (ResourceUtils.isProject(r)) {
-      ProjectDefinition def = reactor.getProject(r.getKey());
+      ProjectDefinition def = getProjectDefinition(reactor, r.getKey());
       ComponentLink.Builder linkBuilder = ComponentLink.newBuilder();
 
       writeProjectLink(builder, def, linkBuilder, CoreProperties.LINKS_HOME_PAGE, ComponentLinkType.HOME);
@@ -108,6 +108,15 @@ public class ComponentsPublisher implements ReportPublisher {
     }
   }
 
+  private ProjectDefinition getProjectDefinition(ProjectReactor reactor, String keyWithBranch) {
+    for (ProjectDefinition p : reactor.getProjects()) {
+      if (keyWithBranch.equals(p.getKeyWithBranch())) {
+        return p;
+      }
+    }
+    return null;
+  }
+
   private void writeProjectLink(BatchReport.Component.Builder componentBuilder, ProjectDefinition def, ComponentLink.Builder linkBuilder, String linkProp,
     ComponentLinkType linkType) {
     String link = def.properties().get(linkProp);
index d309dd35013cfcee160774486912a8934b0cdca6..3a97334d075ce9be0d431be3d3fd0fc37e50973d 100644 (file)
@@ -113,15 +113,16 @@ public class ComponentsPublisherTest {
   }
 
   @Test
-  public void add_components_with_links() throws Exception {
+  public void add_components_with_links_and_branch() throws Exception {
     // inputs
-    Project root = new Project("foo").setName("Root project")
+    Project root = new Project("foo:my_branch").setName("Root project")
       .setAnalysisDate(DateUtils.parseDate(("2012-12-12")));
     root.setId(1).setUuid("PROJECT_UUID");
     resourceCache.add(root, null).setSnapshot(new Snapshot().setId(11));
     reactor.getRoot().properties().put(CoreProperties.LINKS_HOME_PAGE, "http://home");
+    reactor.getRoot().properties().put(CoreProperties.PROJECT_BRANCH_PROPERTY, "my_branch");
 
-    Project module1 = new Project("module1").setName("Module1");
+    Project module1 = new Project("module1:my_branch").setName("Module1");
     module1.setParent(root);
     module1.setId(2).setUuid("MODULE_UUID");
     resourceCache.add(module1, root).setSnapshot(new Snapshot().setId(12));