From: Jean-Baptiste Lievremont Date: Tue, 31 Mar 2015 07:59:47 +0000 (+0200) Subject: Fix quality flaws X-Git-Tag: 5.2-RC1~2426 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0b61632730360e53b126016ea47cf56a0dacdd16;p=sonarqube.git Fix quality flaws --- 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 defs = profilesByLanguage.get(language); if (verifyLanguage(language, defs)) { - for (Map.Entry> 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 defs) { + for (Map.Entry> 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 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)); + } } }