diff options
author | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2015-03-31 09:59:47 +0200 |
---|---|---|
committer | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2015-03-31 09:59:47 +0200 |
commit | 0b61632730360e53b126016ea47cf56a0dacdd16 (patch) | |
tree | a5f13d01dd58c1f53643c6406f1e32d651c206ca | |
parent | cc1dc7a9067f9c39cbc829d1fe35b95bd1c37224 (diff) | |
download | sonarqube-0b61632730360e53b126016ea47cf56a0dacdd16.tar.gz sonarqube-0b61632730360e53b126016ea47cf56a0dacdd16.zip |
Fix quality flaws
-rw-r--r-- | server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java index b34ff6244de..6c43acef289 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java @@ -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)); + } } } |