diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-01-21 11:56:40 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-01-21 11:56:50 +0100 |
commit | d5307d737ddd48f49d32efb061124eadde033ed7 (patch) | |
tree | dc4667b76f524cdd3d229c752f1ce7c72c935dea | |
parent | 0f8f3e9a7dd44b1347cbc5cd414db3927b79d1e5 (diff) | |
download | sonarqube-d5307d737ddd48f49d32efb061124eadde033ed7.tar.gz sonarqube-d5307d737ddd48f49d32efb061124eadde033ed7.zip |
SONAR-4923 Fix parent update where active rules from previous parent were not disabled
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileOperations.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileOperations.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileOperations.java index 31541922c98..96d55cf235c 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileOperations.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileOperations.java @@ -178,12 +178,13 @@ public class QProfileOperations implements ServerComponent { if (isCycle(profile, parentProfile, session)) { throw new BadRequestException("Please do not select a child profile as parent."); } - String parentName = parentProfile != null ? parentProfile.getName() : null; - profile.setParent(parentName); + String newParentName = parentProfile != null ? parentProfile.getName() : null; + // Modification of inheritance has to be done before setting new parent name in order to be able to disable rules from old parent + ProfilesManager.RuleInheritanceActions actions = profilesManager.profileParentChanged(profile.getId(), newParentName, userSession.name()); + profile.setParent(newParentName); dao.update(profile, session); session.commit(); - ProfilesManager.RuleInheritanceActions actions = profilesManager.profileParentChanged(profile.getId(), parentName, userSession.name()); ruleRegistry.deleteActiveRules(actions.idsToDelete()); ruleRegistry.bulkIndexActiveRuleIds(actions.idsToIndex(), session); } finally { |