From 0b61632730360e53b126016ea47cf56a0dacdd16 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Tue, 31 Mar 2015 09:59:47 +0200 Subject: [PATCH] Fix quality flaws --- .../RegisterQualityProfiles.java | 33 ++++++++++++------- 1 file 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 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)); + } } } -- 2.39.5