aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2015-03-31 09:59:47 +0200
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2015-03-31 09:59:47 +0200
commit0b61632730360e53b126016ea47cf56a0dacdd16 (patch)
treea5f13d01dd58c1f53643c6406f1e32d651c206ca
parentcc1dc7a9067f9c39cbc829d1fe35b95bd1c37224 (diff)
downloadsonarqube-0b61632730360e53b126016ea47cf56a0dacdd16.tar.gz
sonarqube-0b61632730360e53b126016ea47cf56a0dacdd16.zip
Fix quality flaws
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java33
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));
+ }
}
}