Author: cschneider
Date: Tue Jul 28 15:46:59 2015
New Revision: 1693122

URL: http://svn.apache.org/r1693122
Log:
[ARIES-1362] Remove EntityManager from Coordination

Modified:
    
aries/trunk/jpa/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/EMSupplierImpl.java

Modified: 
aries/trunk/jpa/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/EMSupplierImpl.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/EMSupplierImpl.java?rev=1693122&r1=1693121&r2=1693122&view=diff
==============================================================================
--- 
aries/trunk/jpa/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/EMSupplierImpl.java
 (original)
+++ 
aries/trunk/jpa/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/EMSupplierImpl.java
 Tue Jul 28 15:46:59 2015
@@ -120,6 +120,14 @@ public class EMSupplierImpl implements E
             return getEmMap(coordination).get(unitName);
         }
     }
+
+    private EntityManager removeEm(Coordination coordination) {
+        Map<Class<?>, Object> vars = coordination.getVariables();
+        synchronized (vars) {
+            return getEmMap(coordination).remove(unitName);
+        }
+    }
+
     
     @SuppressWarnings("unchecked")
     private Map<String, EntityManager> getEmMap(Coordination coordination) {
@@ -201,9 +209,10 @@ public class EMSupplierImpl implements E
         @Override
         public void ended(Coordination coordination) throws Exception {
             LOG.debug("Closing EntityManager for persistence unit " + unitName 
+ " as coordination " + coordination.getName() + " ended.");
-            EntityManager em = getEm(coordination);
+            EntityManager em = removeEm(coordination);
             emSet.remove(em);
             em.close();
+            
             if (shutdown.get()) {
                 emsToShutDown.countDown();
             }


Reply via email to