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 a01d4499387092fd5e2873cd71285145f73fc346 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Mon Nov 18 14:15:17 2019 +0700 [Refactoring] JPADomainList should not open transactions upon read --- .../apache/james/domainlist/jpa/JPADomainList.java | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java b/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java index 40cd999..0aaca0d 100644 --- a/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java +++ b/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java @@ -18,7 +18,6 @@ ****************************************************************/ package org.apache.james.domainlist.jpa; -import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; @@ -39,7 +38,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.github.steveash.guavate.Guavate; -import com.google.common.collect.ImmutableList; /** * JPA implementation of the DomainList.<br> @@ -62,8 +60,6 @@ public class JPADomainList extends AbstractDomainList { /** * Set the entity manager to use. - * - * @param entityManagerFactory */ @Inject @PersistenceUnit(unitName = "James") @@ -79,41 +75,30 @@ public class JPADomainList extends AbstractDomainList { @SuppressWarnings("unchecked") @Override protected List<Domain> getDomainListInternal() throws DomainListException { - List<Domain> domains = new ArrayList<>(); EntityManager entityManager = entityManagerFactory.createEntityManager(); - final EntityTransaction transaction = entityManager.getTransaction(); try { - transaction.begin(); List<String> resultList = entityManager .createNamedQuery("listDomainNames") .getResultList(); - domains = resultList + return resultList .stream() - .map(domainAsString -> Domain.of(domainAsString)) + .map(Domain::of) .collect(Guavate.toImmutableList()); - transaction.commit(); } catch (PersistenceException e) { LOGGER.error("Failed to list domains", e); - rollback(transaction); throw new DomainListException("Unable to retrieve domains", e); } finally { entityManager.close(); } - return ImmutableList.copyOf(domains); } @Override protected boolean containsDomainInternal(Domain domain) throws DomainListException { EntityManager entityManager = entityManagerFactory.createEntityManager(); - final EntityTransaction transaction = entityManager.getTransaction(); try { - transaction.begin(); - boolean result = containsDomainInternal(domain, entityManager); - transaction.commit(); - return result; + return containsDomainInternal(domain, entityManager); } catch (PersistenceException e) { LOGGER.error("Failed to find domain", e); - rollback(transaction); throw new DomainListException("Unable to retrieve domains", e); } finally { entityManager.close(); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org