From: Eric Hartmann Date: Mon, 29 Jan 2018 15:17:39 +0000 (+0100) Subject: SONAR-10313 Do not request DB when list is empty X-Git-Tag: 7.5~1701 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=213d3957ef79ff787d2485e72afe1927ad1c50b9;p=sonarqube.git SONAR-10313 Do not request DB when list is empty --- diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java index 7989e98e3b8..96d540e8579 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java @@ -34,6 +34,7 @@ import org.sonar.db.es.RuleExtensionId; import org.sonar.db.organization.OrganizationDto; import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Collections.emptyList; import static java.util.Optional.ofNullable; import static org.sonar.db.DatabaseUtils.executeLargeInputs; import static org.sonar.db.DatabaseUtils.executeLargeInputsWithoutOutput; @@ -82,26 +83,41 @@ public class RuleDao implements Dao { } public List selectByIds(DbSession session, String organizationUuid, List ids) { + if (ids.isEmpty()) { + return emptyList(); + } return ensureOrganizationIsSet( organizationUuid, executeLargeInputs(ids, chunk -> mapper(session).selectByIds(organizationUuid, chunk))); } public List selectDefinitionByIds(DbSession session, Collection ids) { + if (ids.isEmpty()) { + return emptyList(); + } return executeLargeInputs(ids, mapper(session)::selectDefinitionByIds); } public List selectByKeys(DbSession session, OrganizationDto organization, Collection keys) { + if (keys.isEmpty()) { + return emptyList(); + } return ensureOrganizationIsSet(organization.getUuid(), executeLargeInputs(keys, chunk -> mapper(session).selectByKeys(organization.getUuid(), chunk))); } public List selectByKeys(DbSession session, String organizationUuid, Collection keys) { + if (keys.isEmpty()) { + return emptyList(); + } return ensureOrganizationIsSet(organizationUuid, executeLargeInputs(keys, chunk -> mapper(session).selectByKeys(organizationUuid, chunk))); } public List selectDefinitionByKeys(DbSession session, Collection keys) { + if (keys.isEmpty()) { + return emptyList(); + } return executeLargeInputs(keys, mapper(session)::selectDefinitionByKeys); }