From 38f37cf6a6de18e01171f4d4625a011404bc6198 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Wed, 28 May 2014 11:42:09 +0200 Subject: [PATCH] SONAR-5007 do not update rules with status REMOVED --- .../src/main/java/org/sonar/server/rule/RuleUpdater.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RuleUpdater.java b/sonar-server/src/main/java/org/sonar/server/rule/RuleUpdater.java index f825a2d1eec..3b1585e0288 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/RuleUpdater.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/RuleUpdater.java @@ -23,6 +23,7 @@ import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.EqualsBuilder; import org.sonar.api.ServerComponent; +import org.sonar.api.rule.RuleStatus; import org.sonar.api.server.debt.DebtRemediationFunction; import org.sonar.api.utils.System2; import org.sonar.core.permission.GlobalPermissions; @@ -75,6 +76,9 @@ public class RuleUpdater implements ServerComponent { try { Context context = new Context(); context.rule = dbClient.ruleDao().getNonNullByKey(dbSession, change.getRuleKey()); + if (RuleStatus.REMOVED.name().equals(context.rule.getStatus())) { + throw new IllegalArgumentException("Rule with REMOVED status cannot be updated: " + change.getRuleKey()); + } if (change.getDebtSubCharacteristicKey() != null && !change.getDebtSubCharacteristicKey().equals(RuleUpdate.DEFAULT_DEBT_CHARACTERISTIC)) { @@ -156,7 +160,7 @@ public class RuleUpdater implements ServerComponent { (context.rule.getDefaultSubCharacteristicId() == null && context.rule.getSubCharacteristicId() == null) || (context.rule.getSubCharacteristicId() != null && context.rule.getSubCharacteristicId().intValue() == RuleDto.DISABLED_CHARACTERISTIC_ID); - if (noChar || update.getDebtRemediationFunction()==null) { + if (noChar || update.getDebtRemediationFunction() == null) { context.rule.setRemediationFunction(null); context.rule.setRemediationCoefficient(null); context.rule.setRemediationOffset(null); -- 2.39.5