From 213d3957ef79ff787d2485e72afe1927ad1c50b9 Mon Sep 17 00:00:00 2001 From: Eric Hartmann Date: Mon, 29 Jan 2018 16:17:39 +0100 Subject: [PATCH] SONAR-10313 Do not request DB when list is empty --- .../src/main/java/org/sonar/db/rule/RuleDao.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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); } -- 2.39.5