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());
-    }
 }