You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/04/09 13:34:20 UTC
[camel] branch master updated: Revert "CAMEL-16470 - fix for reuse
EntityManager"
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 <an...@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());
- }
}