]> source.dussan.org Git - sonarqube.git/commitdiff
Fix quality flaw
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Wed, 13 Aug 2014 12:36:10 +0000 (14:36 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Wed, 13 Aug 2014 12:36:17 +0000 (14:36 +0200)
server/sonar-server/src/main/java/org/sonar/server/batch/ProjectReferentialsAction.java
server/sonar-server/src/main/java/org/sonar/server/measure/MeasureFilter.java
server/sonar-server/src/main/java/org/sonar/server/rule/RegisterRules.java
server/sonar-server/src/test/java/org/sonar/server/batch/ProjectReferentialsActionTest.java
sonar-batch/src/main/java/org/sonar/batch/debt/SqaleRatingDecorator.java
sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDao.java

index 76b04cf40d64c7cde9589de4a6afccb920fbd827..20172488b7cc7e79c58cdc49c3019c1d72478361 100644 (file)
@@ -223,7 +223,7 @@ public class ProjectReferentialsAction implements RequestHandler {
   private void addActiveRules(ProjectReferentials ref) {
     for (org.sonar.batch.protocol.input.QProfile qProfile : ref.qProfiles()) {
       for (ActiveRule activeRule : qProfileLoader.findActiveRulesByProfile(qProfile.key())) {
-        Rule rule = ruleService.getByKey(activeRule.key().ruleKey());
+        Rule rule = ruleService.getNonNullByKey(activeRule.key().ruleKey());
         org.sonar.batch.protocol.input.ActiveRule inputActiveRule = new org.sonar.batch.protocol.input.ActiveRule(
           activeRule.key().ruleKey().repository(),
           activeRule.key().ruleKey().rule(),
index 7454d8ff930c67b74e55e4536493bbd9231c6560..68c07974484ceeb49e262ab0e76af86f7c8aae45 100644 (file)
@@ -98,11 +98,12 @@ public class MeasureFilter {
     return userFavourites;
   }
 
+  @CheckForNull
   public String getResourceName() {
     return resourceName;
   }
 
-  public MeasureFilter setResourceName(String s) {
+  public MeasureFilter setResourceName(@Nullable String s) {
     this.resourceName = s;
     return this;
   }
index ff7817ad150fc190806c5b94e86009d99f5e8c1e..1cf8dc291034edd2192710c1fb0da5d942c6ef7a 100644 (file)
@@ -99,29 +99,7 @@ public class RegisterRules implements Startable {
       for (RulesDefinition.ExtendedRepository repoDef : getRepositories(context)) {
         if (languages.get(repoDef.language()) != null) {
           for (RulesDefinition.Rule ruleDef : repoDef.rules()) {
-            RuleKey ruleKey = RuleKey.of(ruleDef.repository().key(), ruleDef.key());
-
-            RuleDto rule = allRules.containsKey(ruleKey) ? allRules.remove(ruleKey) : createRuleDto(ruleDef, session);
-
-            boolean executeUpdate = false;
-            if (mergeRule(ruleDef, rule)) {
-              executeUpdate = true;
-            }
-
-            CharacteristicDto subCharacteristic = characteristic(ruleDef, rule.getSubCharacteristicId(), allCharacteristics);
-            if (mergeDebtDefinitions(ruleDef, rule, subCharacteristic)) {
-              executeUpdate = true;
-            }
-
-            if (mergeTags(ruleDef, rule)) {
-              executeUpdate = true;
-            }
-
-            if (executeUpdate) {
-              dbClient.ruleDao().update(session, rule);
-            }
-
-            mergeParams(ruleDef, rule, session);
+            registerRule(ruleDef, allRules, allCharacteristics, session);
           }
           session.commit();
         }
@@ -142,6 +120,32 @@ public class RegisterRules implements Startable {
     // nothing
   }
 
+  private void registerRule(RulesDefinition.Rule ruleDef, Map<RuleKey, RuleDto> allRules, Map<String, CharacteristicDto> allCharacteristics, DbSession session) {
+    RuleKey ruleKey = RuleKey.of(ruleDef.repository().key(), ruleDef.key());
+
+    RuleDto rule = allRules.containsKey(ruleKey) ? allRules.remove(ruleKey) : createRuleDto(ruleDef, session);
+
+    boolean executeUpdate = false;
+    if (mergeRule(ruleDef, rule)) {
+      executeUpdate = true;
+    }
+
+    CharacteristicDto subCharacteristic = characteristic(ruleDef, rule.getSubCharacteristicId(), allCharacteristics);
+    if (mergeDebtDefinitions(ruleDef, rule, subCharacteristic)) {
+      executeUpdate = true;
+    }
+
+    if (mergeTags(ruleDef, rule)) {
+      executeUpdate = true;
+    }
+
+    if (executeUpdate) {
+      dbClient.ruleDao().update(session, rule);
+    }
+
+    mergeParams(ruleDef, rule, session);
+  }
+
   private Map<RuleKey, RuleDto> loadRules(DbSession session) {
     Map<RuleKey, RuleDto> rules = new HashMap<RuleKey, RuleDto>();
     for (RuleDto rule : dbClient.ruleDao().findByNonManual(session)) {
index 75ea4a1fb6f9fa7d19c16f02c7cc8bdea2306d0e..a2afc2d7a852868b88372836e953fa4df7b2c70d 100644 (file)
@@ -379,7 +379,7 @@ public class ProjectReferentialsActionTest {
     Rule rule = mock(Rule.class);
     when(rule.name()).thenReturn("Avoid Cycle");
     when(rule.internalKey()).thenReturn("squid-1");
-    when(ruleService.getByKey(ruleKey)).thenReturn(rule);
+    when(ruleService.getNonNullByKey(ruleKey)).thenReturn(rule);
 
     WsTester.TestRequest request = tester.newGetRequest("batch", "project").setParam("key", projectKey);
     request.execute().assertJson(getClass(), "return_active_rules.json");
index 41b2af1fafadd728521aa105b0b4c5b25bfaeba9..35672b85d2becf67d954b67c2276a8368726fccd 100644 (file)
@@ -122,8 +122,9 @@ public final class SqaleRatingDecorator implements Decorator {
     }
     double sum = 0d;
     for (Measure measure : measures) {
-      if (measure.getData() != null) {
-        sum += Double.parseDouble(measure.getData());
+      String data = measure.getData();
+      if (data != null) {
+        sum += Double.parseDouble(data);
       }
     }
     return sum;
index c28804d6d9bef558cd493690b04ce531d0910482..fccb4fa09f4d38b0ad004dc93deedd72e08f5c62 100644 (file)
@@ -249,7 +249,7 @@ public class PermissionTemplateDao implements TaskComponent, ServerComponent {
    * Remove a group from all templates (used when removing a group)
    */
   public void removeByGroup(Long groupId, SqlSession session) {
-      session.getMapper(PermissionTemplateMapper.class).deleteByGroupId(groupId);
+    session.getMapper(PermissionTemplateMapper.class).deleteByGroupId(groupId);
   }
 
   private String generateTemplateKee(String name, Date timeStamp) {