]> source.dussan.org Git - sonarqube.git/commitdiff
Fix quality flaws
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Mon, 27 Oct 2014 09:03:16 +0000 (10:03 +0100)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Mon, 27 Oct 2014 12:17:14 +0000 (13:17 +0100)
server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java

index b065883f0ca2eb50b8582509af1e49c648c861dc..0a4bc20d5bbd9493c4c7cb653bc5aea75d09d59b 100644 (file)
@@ -240,19 +240,17 @@ public class SearchAction extends SearchRequestHandler<IssueQuery, Issue> {
       }
     }
 
-    for (FacetValue rule: result.getFacetValues(IssueFilterParameters.RULES)) {
-      ruleKeys.add(RuleKey.parse(rule.getKey()));
-    }
-    for (FacetValue project: result.getFacetValues(IssueFilterParameters.COMPONENT_ROOTS)) {
-      projectUuids.add(project.getKey());
-    }
-    for (FacetValue component: result.getFacetValues(IssueFilterParameters.COMPONENTS)) {
-      componentUuids.add(component.getKey());
-    }
-    for (FacetValue user: result.getFacetValues(IssueFilterParameters.ASSIGNEES)) {
-      userLogins.add(user.getKey());
+    Collection<FacetValue> facetRules = result.getFacetValues(IssueFilterParameters.RULES);
+    if (facetRules != null) {
+      for (FacetValue rule: facetRules) {
+        ruleKeys.add(RuleKey.parse(rule.getKey()));
+      }
     }
 
+    collectFacetKeys(result, IssueFilterParameters.COMPONENT_ROOTS, projectUuids);
+    collectFacetKeys(result, IssueFilterParameters.COMPONENTS, componentUuids);
+    collectFacetKeys(result, IssueFilterParameters.ASSIGNEES, userLogins);
+
     DbSession session = dbClient.openSession(false);
     try {
       List<DefaultIssueComment> comments = issueChangeDao.selectCommentsByIssues(session, issueKeys);
@@ -293,6 +291,15 @@ public class SearchAction extends SearchRequestHandler<IssueQuery, Issue> {
     writeLegacyPaging(context, json, result);
   }
 
+  private void collectFacetKeys(Result<Issue> result, String facetName, Collection<String> facetKeys) {
+    Collection<FacetValue> facetValues = result.getFacetValues(facetName);
+    if (facetValues != null) {
+      for (FacetValue project: facetValues) {
+        facetKeys.add(project.getKey());
+      }
+    }
+  }
+
   private void writeLegacyPaging(QueryContext context, JsonWriter json, Result<?> result) {
     // TODO remove with stas on HTML side
     json.prop("maxResultsReached", false);