]> source.dussan.org Git - sonarqube.git/commitdiff
fix quality flaws
authorStephane Gamard <stephane.gamard@searchbox.com>
Tue, 1 Jul 2014 14:30:33 +0000 (16:30 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Tue, 1 Jul 2014 14:50:32 +0000 (16:50 +0200)
sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleIndex.java
sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleNormalizer.java
sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java
sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java

index a4d0ec0564658416cef2ea4b8209811582ec8589..4dbfd203599d8636d274827bd8dcbb0511df77e4 100644 (file)
@@ -1,22 +1,3 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2014 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * SonarQube is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
 /*
  * SonarQube, open source software quality management tool.
  * Copyright (C) 2008-2014 SonarSource
index 1c5784a2282f0f2845325734b0605afc6867d9e7..3306df57e7ce504c062c28a101427cd80d64c0b3 100644 (file)
@@ -102,7 +102,8 @@ public class ActiveRuleNormalizer extends BaseNormalizer<ActiveRuleDto, ActiveRu
     DbSession dbSession = db.openSession(false);
     List<UpdateRequest> requests = new ArrayList<UpdateRequest>();
     try {
-      requests.addAll(normalize(db.activeRuleDao().getNullableByKey(dbSession, key)));
+      ActiveRuleDto activeRule = db.activeRuleDao().getByKey(dbSession, key);
+      requests.addAll(normalize(activeRule));
       for (ActiveRuleParamDto param : db.activeRuleDao().findParamsByActiveRuleKey(dbSession, key)) {
         requests.addAll(normalizeNested(param, key));
       }
@@ -129,14 +130,13 @@ public class ActiveRuleNormalizer extends BaseNormalizer<ActiveRuleDto, ActiveRu
 
     DbSession session = db.openSession(false);
     try {
-      // TODO because DTO uses legacy ID patter
+      // TODO because DTO uses legacy ID pattern
       QualityProfileDto profile = db.qualityProfileDao().getById(activeRuleDto.getProfileId(), session);
       newRule.put(ActiveRuleField.PROFILE_KEY.field(), profile.getKey());
 
       // TODO this should be generated by RegisterRule and modified in DTO.
       String parentKey = null;
       if (activeRuleDto.getParentId() != null) {
-
         ActiveRuleDto parentDto = db.activeRuleDao().getById(session, activeRuleDto.getParentId());
         parentKey = parentDto.getKey().toString();
       }
index a6bc91a32130eff74c1f92f9050c01e1c188e556..7b482f6d541c826f0875044bdd90d5873a94b3e6 100644 (file)
@@ -59,7 +59,6 @@ import org.sonar.server.search.Result;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
-
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -134,6 +133,7 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
 
   private void setSorting(RuleQuery query, SearchRequestBuilder esSearch) {
     /* integrate Query Sort */
+    String queryText = query.getQueryText();
     if (query.getSortField() != null) {
       FieldSortBuilder sort = SortBuilders.fieldSort(query.getSortField().sortField());
       if (query.isAscendingSort()) {
@@ -142,7 +142,7 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
         sort.order(SortOrder.DESC);
       }
       esSearch.addSort(sort);
-    } else if (query.getQueryText() != null && !query.getQueryText().isEmpty()) {
+    } else if (queryText != null && !queryText.isEmpty()) {
       esSearch.addSort(SortBuilders.scoreSort());
     } else {
       esSearch.addSort(RuleNormalizer.RuleField.UPDATED_AT.sortField(), SortOrder.DESC);
@@ -175,6 +175,7 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
   protected QueryBuilder getQuery(RuleQuery query, QueryOptions options) {
 
     // No contextual query case
+    String queryText = query.getQueryText();
     if (query.getQueryText() == null || query.getQueryText().isEmpty()) {
       return QueryBuilders.matchAllQuery();
     }
@@ -228,8 +229,8 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
     this.addTermFilter(fb, RuleNormalizer.RuleField._TAGS.field(), query.getTags());
 
     // Construct the debt filter on effective char and subChar
-    Collection<String> characteristics = query.getDebtCharacteristics();
-    if (characteristics != null && !characteristics.isEmpty()) {
+    Collection<String> debtCharacteristics = query.getDebtCharacteristics();
+    if (debtCharacteristics != null && !debtCharacteristics.isEmpty()) {
       fb.must(
         FilterBuilders.orFilter(
           // Match only when NOT NONE overriden
@@ -237,8 +238,8 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
             FilterBuilders.notFilter(
               FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), DebtCharacteristic.NONE)),
             FilterBuilders.orFilter(
-              FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), characteristics),
-              FilterBuilders.termsFilter(RuleNormalizer.RuleField.CHARACTERISTIC.field(), characteristics))
+              FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), debtCharacteristics),
+              FilterBuilders.termsFilter(RuleNormalizer.RuleField.CHARACTERISTIC.field(), debtCharacteristics))
             ),
 
           // Match only when NOT NONE overriden
@@ -247,14 +248,15 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
               FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), ""),
               FilterBuilders.notFilter(FilterBuilders.existsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field()))),
             FilterBuilders.orFilter(
-              FilterBuilders.termsFilter(RuleNormalizer.RuleField.DEFAULT_SUB_CHARACTERISTIC.field(), characteristics),
-              FilterBuilders.termsFilter(RuleNormalizer.RuleField.DEFAULT_CHARACTERISTIC.field(), characteristics)))
+              FilterBuilders.termsFilter(RuleNormalizer.RuleField.DEFAULT_SUB_CHARACTERISTIC.field(), debtCharacteristics),
+              FilterBuilders.termsFilter(RuleNormalizer.RuleField.DEFAULT_CHARACTERISTIC.field(), debtCharacteristics)))
           )
         );
     }
 
     // Debt char exist filter
-    if (Boolean.TRUE.equals(query.getHasDebtCharacteristic())) {
+    Boolean hasDebtCharacteristic = query.getHasDebtCharacteristic();
+    if (hasDebtCharacteristic != null && hasDebtCharacteristic) {
       fb.must(FilterBuilders.existsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field()));
     }
 
@@ -263,10 +265,10 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
         .gte(query.getAvailableSince()));
     }
 
-    Collection<RuleStatus> statuses = query.getStatuses();
-    if (statuses != null && !statuses.isEmpty()) {
+    Collection<RuleStatus> statusValues = query.getStatuses();
+    if (statusValues != null && !statusValues.isEmpty()) {
       Collection<String> stringStatus = new ArrayList<String>();
-      for (RuleStatus status : statuses) {
+      for (RuleStatus status : statusValues) {
         stringStatus.add(status.name());
       }
       this.addTermFilter(fb, RuleNormalizer.RuleField.STATUS.field(), stringStatus);
@@ -296,10 +298,10 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
     }
 
     /** Implementation of activation query */
-    if (query.getActivation() == Boolean.TRUE) {
+    if (query.getActivation().equals(Boolean.TRUE)) {
       fb.must(FilterBuilders.hasChildFilter(IndexDefinition.ACTIVE_RULE.getIndexType(),
         childQuery));
-    } else if (query.getActivation() == Boolean.FALSE) {
+    } else if (query.getActivation().equals(Boolean.FALSE)) {
       fb.mustNot(FilterBuilders.hasChildFilter(IndexDefinition.ACTIVE_RULE.getIndexType(),
         childQuery));
     }
@@ -394,7 +396,7 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
   }
 
   /**
-   * @deprecated do not use ids but keys
+   * @deprecated please use getByKey(RuleKey key)
    */
   @Deprecated
   @CheckForNull
@@ -413,7 +415,7 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> {
   }
 
   /**
-   * @deprecated do not use ids but keys
+   * @deprecated please use getByKey(RuleKey key)
    */
   @Deprecated
   public List<Rule> getByIds(Collection<Integer> ids) {
index ddd10ef0e85009f97e56ead23e5d73037454caac..c6d1ffc979046d8ca101f4fdadb7fd77306de346 100644 (file)
@@ -285,9 +285,9 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial
   }
 
   protected boolean needMultiField(IndexField field) {
-    return ((field.type() == IndexField.Type.TEXT
+    return (field.type() == IndexField.Type.TEXT
       || field.type() == IndexField.Type.STRING)
-      && (field.sortable() || field.searchable()));
+      && (field.sortable() || field.searchable());
   }
 
   protected Map mapSortField(IndexField field) {
@@ -386,7 +386,7 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial
     return null;
   }
 
-  protected void updateDocument(Collection<UpdateRequest> requests, KEY key) throws Exception {
+  protected void updateDocument(Collection<UpdateRequest> requests, KEY key) {
     LOG.debug("UPDATE _id:{} in index {}", key, this.getIndexName());
     BulkRequestBuilder bulkRequest = getClient().prepareBulk();
     for (UpdateRequest request : requests) {
@@ -481,8 +481,8 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial
         this.deleteDocument(additionalKey);
       }
     } catch (Exception e) {
-      LOG.error("Could not DELETE _id = '{}' for index '{}': {}",
-        this.getKeyValue(key), this.getIndexName(), e.getMessage());
+      throw new IllegalStateException("Could not DELETE _id = '" + this.getKeyValue(key) + "' " +
+        "for index '" + this.getIndexName() + "': " + e.getMessage());
     }
   }
 
@@ -494,8 +494,8 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial
         this.deleteDocument(additionalItem.getKey());
       }
     } catch (Exception e) {
-      LOG.error("Could not DELETE _id:{} for index {}: {}",
-        this.getKeyValue(item.getKey()), this.getIndexName(), e.getMessage());
+      throw new IllegalStateException("Could not DELETE _id = '" + this.getKeyValue(item.getKey()) + "' " +
+        "for index '" + this.getIndexName() + "': " + e.getMessage());
     }
   }
 
@@ -588,7 +588,7 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial
             stats.put(aggregation.getName(), facetValue);
           }
         } else if (aggregation.getClass().isAssignableFrom(InternalValueCount.class)) {
-          InternalValueCount count = ((InternalValueCount) aggregation);
+          InternalValueCount count = (InternalValueCount) aggregation;
           FacetValue facetValue = new FacetValue(count.getName(), (int) count.getValue());
           stats.put(count.getName(), facetValue);
         }