aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java b/sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java
index 3d63834ca61..f597ee3214b 100644
--- a/sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java
+++ b/sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java
@@ -52,12 +52,12 @@ public final class ActivateDefaultProfiles {
RulesProfile profileToActivate = null;
boolean oneProfileIsActivated = false;
if (profiles.isEmpty()) {
- profileToActivate = new RulesProfile("Default " + language.getName(), language.getKey(), true, false);
-
+ profileToActivate = RulesProfile.create("Default " + language.getName(), language.getKey());
+ profileToActivate.setDefaultProfile(true);
+ profileToActivate.setProvided(false);
} else if (profiles.size() == 1) {
profileToActivate = profiles.get(0);
-
- } else {
+ } else if (!activeProfileFoundInDB(profiles)) {
Iterator<RulesProfile> iterator = profiles.iterator();
while (iterator.hasNext() && !oneProfileIsActivated) {
RulesProfile profile = iterator.next();
@@ -66,10 +66,8 @@ public final class ActivateDefaultProfiles {
profileToActivate = profile;
}
}
- if (!oneProfileIsActivated) {
- if (profileToActivate == null) {
- profileToActivate = profiles.get(0);
- }
+ if (!oneProfileIsActivated && profileToActivate == null) {
+ profileToActivate = profiles.get(0);
}
}
if (!oneProfileIsActivated && profileToActivate != null) {
@@ -77,4 +75,13 @@ public final class ActivateDefaultProfiles {
session.saveWithoutFlush(profileToActivate);
}
}
+
+ private boolean activeProfileFoundInDB(List<RulesProfile> profiles) {
+ for (RulesProfile rulesProfile : profiles) {
+ if (rulesProfile.getDefaultProfile()) {
+ return true;
+ }
+ }
+ return false;
+ }
}