From 07018b840638267e75af62f13c34ee67a691f988 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Mon, 16 Mar 2015 15:42:43 +0100 Subject: [PATCH] SONAR-6262 Fix NPE in link publisher on Views --- .../java/org/sonar/batch/report/ComponentsPublisher.java | 7 ++++++- .../main/java/org/sonar/api/resources/ResourceUtils.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/report/ComponentsPublisher.java b/sonar-batch/src/main/java/org/sonar/batch/report/ComponentsPublisher.java index 186f4368d6e..06f5998bb7d 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/report/ComponentsPublisher.java +++ b/sonar-batch/src/main/java/org/sonar/batch/report/ComponentsPublisher.java @@ -91,7 +91,7 @@ public class ComponentsPublisher implements ReportPublisher { for (BatchResource child : batchResource.children()) { builder.addChildRefs(child.batchId()); } - if (ResourceUtils.isProject(r)) { + if (isRealProjectOrModule(r)) { ProjectDefinition def = getProjectDefinition(reactor, r.getKey()); ComponentLink.Builder linkBuilder = ComponentLink.newBuilder(); @@ -108,6 +108,11 @@ public class ComponentsPublisher implements ReportPublisher { } } + // Exclude views + private static boolean isRealProjectOrModule(Resource r) { + return ResourceUtils.isProject(r) && !ResourceUtils.isView(r) && !ResourceUtils.isSubview(r); + } + private ProjectDefinition getProjectDefinition(ProjectReactor reactor, String keyWithBranch) { for (ProjectDefinition p : reactor.getProjects()) { if (keyWithBranch.equals(p.getKeyWithBranch())) { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceUtils.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceUtils.java index 80d273a13ed..4241f174b5a 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceUtils.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceUtils.java @@ -87,7 +87,7 @@ public final class ResourceUtils { } /** - * This method equal isRootProject(resource) or isModuleProject(resource) + * This method equal isRootProject(resource) or isModuleProject(resource) or isView(resource) or isSubview(resource) */ public static boolean isProject(Resource resource) { return isSet(resource); -- 2.39.5