This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 299a110536428a0a28674a5781459622c0b90997 Author: Benoit Tellier <[email protected]> AuthorDate: Thu Jun 10 10:51:17 2021 +0700 JAMES-3594 LDAP user counting: avoid extra requests for each users --- .../org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java index 81b8375..7a2301b 100644 --- a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java +++ b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java @@ -276,7 +276,7 @@ public class ReadOnlyLDAPUsersDAO implements UsersDAO, Configurable { @Override public int countUsers() throws UsersRepositoryException { try { - return Mono.fromCallable(() -> doCountUsers()) + return Mono.fromCallable(() -> Math.toIntExact(doCountUsers())) .retryWhen(ldapConfiguration.retrySpec()) .block(); } catch (Exception e) { @@ -287,11 +287,15 @@ public class ReadOnlyLDAPUsersDAO implements UsersDAO, Configurable { } } - private int doCountUsers() throws LDAPException { - return Math.toIntExact(getValidUsers().stream() + private long doCountUsers() throws LDAPException { + if (!ldapConfiguration.getRestriction().isActivated()) { + return getAllUsernamesFromLDAP().count(); + } + + return getValidUsers().stream() .map(Throwing.function(this::buildUser).sneakyThrow()) .flatMap(Optional::stream) - .count()); + .count(); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
