]> source.dussan.org Git - sonarqube.git/commitdiff
Fix quality flaws
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Tue, 31 Mar 2015 07:59:47 +0000 (09:59 +0200)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Tue, 31 Mar 2015 07:59:47 +0000 (09:59 +0200)
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java

index b34ff6244de789b9e2bf86bff83cc079eb2cd7da..6c43acef2895d674f04a6db7161dc0e391cc6fa2 100644 (file)
@@ -87,17 +87,7 @@ public class RegisterQualityProfiles implements ServerComponent {
       for (String language : profilesByLanguage.keySet()) {
         List<RulesProfile> defs = profilesByLanguage.get(language);
         if (verifyLanguage(language, defs)) {
-          for (Map.Entry<String, Collection<RulesProfile>> entry : profilesByName(defs).entrySet()) {
-            String name = entry.getKey();
-            QProfileName profileName = new QProfileName(language, name);
-            if (shouldRegister(profileName, session)) {
-              register(profileName, entry.getValue(), session);
-              session.commit();
-            }
-            builtInProfiles.put(language, name);
-          }
-          setDefault(language, defs, session);
-          session.commit();
+          registerProfilesForLanguage(session, language, defs);
         }
       }
       profiler.stopDebug();
@@ -123,6 +113,20 @@ public class RegisterQualityProfiles implements ServerComponent {
     return true;
   }
 
+  private void registerProfilesForLanguage(DbSession session, String language, List<RulesProfile> defs) {
+    for (Map.Entry<String, Collection<RulesProfile>> entry : profilesByName(defs).entrySet()) {
+      String name = entry.getKey();
+      QProfileName profileName = new QProfileName(language, name);
+      if (shouldRegister(profileName, session)) {
+        register(profileName, entry.getValue(), session);
+        session.commit();
+      }
+      builtInProfiles.put(language, name);
+    }
+    setDefault(language, defs, session);
+    session.commit();
+  }
+
   private void register(QProfileName name, Collection<RulesProfile> profiles, DbSession session) {
     LOGGER.info("Register profile " + name);
 
@@ -155,7 +159,12 @@ public class RegisterQualityProfiles implements ServerComponent {
       String defaultProfileName = nameOfDefaultProfile(profileDefs);
       LOGGER.info("Set default " + language + " profile: " + defaultProfileName);
       QualityProfileDto newDefaultProfile = dbClient.qualityProfileDao().getByNameAndLanguage(defaultProfileName, language, session);
-      dbClient.qualityProfileDao().update(session, newDefaultProfile.setDefault(true));
+      if (newDefaultProfile == null) {
+        // Must not happen, we just registered it
+        throw new IllegalStateException("Could not find declared default profile '%s' for language '%s'");
+      } else {
+        dbClient.qualityProfileDao().update(session, newDefaultProfile.setDefault(true));
+      }
     }
   }