]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10313 Do not request DB when list is empty
authorEric Hartmann <hartmann.eric@gmail.com>
Mon, 29 Jan 2018 15:17:39 +0000 (16:17 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 8 Feb 2018 12:41:00 +0000 (13:41 +0100)
server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java

index 7989e98e3b848848ced49fd890d50eb35702bb28..96d540e8579ad53afdaceea7e67dfb213237e90c 100644 (file)
@@ -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<RuleDto> selectByIds(DbSession session, String organizationUuid, List<Integer> ids) {
+    if (ids.isEmpty()) {
+      return emptyList();
+    }
     return ensureOrganizationIsSet(
       organizationUuid,
       executeLargeInputs(ids, chunk -> mapper(session).selectByIds(organizationUuid, chunk)));
   }
 
   public List<RuleDefinitionDto> selectDefinitionByIds(DbSession session, Collection<Integer> ids) {
+    if (ids.isEmpty()) {
+      return emptyList();
+    }
     return executeLargeInputs(ids, mapper(session)::selectDefinitionByIds);
   }
 
   public List<RuleDto> selectByKeys(DbSession session, OrganizationDto organization, Collection<RuleKey> keys) {
+    if (keys.isEmpty()) {
+      return emptyList();
+    }
     return ensureOrganizationIsSet(organization.getUuid(),
       executeLargeInputs(keys, chunk -> mapper(session).selectByKeys(organization.getUuid(), chunk)));
   }
 
   public List<RuleDto> selectByKeys(DbSession session, String organizationUuid, Collection<RuleKey> keys) {
+    if (keys.isEmpty()) {
+      return emptyList();
+    }
     return ensureOrganizationIsSet(organizationUuid,
       executeLargeInputs(keys, chunk -> mapper(session).selectByKeys(organizationUuid, chunk)));
   }
 
   public List<RuleDefinitionDto> selectDefinitionByKeys(DbSession session, Collection<RuleKey> keys) {
+    if (keys.isEmpty()) {
+      return emptyList();
+    }
     return executeLargeInputs(keys, mapper(session)::selectDefinitionByKeys);
   }