dbSession.close();
}
}
private RuleKey createCustomRule(NewRule newRule, DbSession dbSession){
RuleKey templateKey = newRule.templateKey();
if (templateKey == null) {
throw new IllegalArgumentException("Rule template key should not be null");
}
RuleDto templateRule = dbClient.ruleDao().getByKey(dbSession, templateKey);
if (!templateRule.isTemplate()) {
throw new IllegalArgumentException("This rule is not a template rule: " + templateKey.toString());
}
validateCustomRule(newRule);
RuleKey customRuleKey = RuleKey.of(templateRule.getRepositoryKey(), newRule.ruleKey());
RuleDto existingRule = loadRule(customRuleKey, dbSession);
if (existingRule != null) {
updateExistingRule(existingRule, newRule, dbSession);
} else {