This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 6012901 Revert "CAMEL-16470 - fix for reuse EntityManager" 6012901 is described below commit 6012901be42ac449b5dd00af32e829a982f90f68 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Fri Apr 9 15:33:46 2021 +0200 Revert "CAMEL-16470 - fix for reuse EntityManager" This reverts commit 8144728d9dd725264c01433eacbc785ae1578cbc. --- .../org/apache/camel/component/jpa/JpaHelper.java | 46 +++++++--------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaHelper.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaHelper.java index 463c888..556b75b 100644 --- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaHelper.java +++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaHelper.java @@ -16,9 +16,6 @@ */ package org.apache.camel.component.jpa; -import java.util.HashMap; -import java.util.Map; - import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; @@ -57,7 +54,7 @@ public final class JpaHelper { // then try reuse any entity manager which has been previously created and stored on the exchange if (em == null && exchange != null) { - em = getEntityManagerMap(exchange).get(getKey(entityManagerFactory)); + em = exchange.getProperty(JpaConstants.ENTITY_MANAGER, EntityManager.class); } if (em == null && useSharedEntityManager) { @@ -65,39 +62,26 @@ public final class JpaHelper { } if (em == null) { - em = createEntityManager(exchange, entityManagerFactory); + // create a new entity manager + em = entityManagerFactory.createEntityManager(); + if (exchange != null) { + // we want to reuse the EM so store as property and make sure we close it when done with the exchange + exchange.setProperty(JpaConstants.ENTITY_MANAGER, em); + exchange.adapt(ExtendedExchange.class).addOnCompletion(new JpaCloseEntityManagerOnCompletion(em)); + } } if (allowRecreate && em == null || !em.isOpen()) { - em = createEntityManager(exchange, entityManagerFactory); + // create a new entity manager + em = entityManagerFactory.createEntityManager(); + if (exchange != null) { + // we want to reuse the EM so store as property and make sure we close it when done with the exchange + exchange.setProperty(JpaConstants.ENTITY_MANAGER, em); + exchange.adapt(ExtendedExchange.class).addOnCompletion(new JpaCloseEntityManagerOnCompletion(em)); + } } return em; } - private static EntityManager createEntityManager(Exchange exchange, EntityManagerFactory entityManagerFactory) { - EntityManager em; - em = entityManagerFactory.createEntityManager(); - if (exchange != null) { - // we want to reuse the EM so store as property and make sure we close it when done with the exchange - Map<String, EntityManager> entityManagers = getEntityManagerMap(exchange); - entityManagers.put(getKey(entityManagerFactory), em); - exchange.adapt(ExtendedExchange.class).addOnCompletion(new JpaCloseEntityManagerOnCompletion(em)); - } - return em; - } - - @SuppressWarnings("unchecked") - private static Map<String, EntityManager> getEntityManagerMap(Exchange exchange) { - Map<String, EntityManager> entityManagers = exchange.getProperty(JpaConstants.ENTITY_MANAGER, Map.class); - if (entityManagers == null) { - entityManagers = new HashMap<>(); - exchange.setProperty(JpaConstants.ENTITY_MANAGER, entityManagers); - } - return entityManagers; - } - - private static String getKey(EntityManagerFactory entityManagerFactory) { - return String.valueOf(entityManagerFactory.hashCode()); - } }