You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2010/07/07 00:09:41 UTC

svn commit: r961032 - in /openejb/trunk/openejb3: assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/ma...

Author: dblevins
Date: Tue Jul  6 22:09:41 2010
New Revision: 961032

URL: http://svn.apache.org/viewvc?rev=961032&view=rev
Log:
Added some debug logging for EntityManager creation and closing

Modified:
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java?rev=961032&r1=961031&r2=961032&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java Tue Jul  6 22:09:41 2010
@@ -285,7 +285,7 @@ public class TomcatJndiBuilder {
             }
 
             JtaEntityManagerRegistry jtaEntityManagerRegistry = SystemInstance.get().getComponent(JtaEntityManagerRegistry.class);
-            JtaEntityManager jtaEntityManager = new JtaEntityManager(jtaEntityManagerRegistry, factory, ref.properties, ref.extended);
+            JtaEntityManager jtaEntityManager = new JtaEntityManager(ref.persistenceUnitName, jtaEntityManagerRegistry, factory, ref.properties, ref.extended);
             Object object = jtaEntityManager;
             setResource(resource, object);
         }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?rev=961032&r1=961031&r2=961032&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java Tue Jul  6 22:09:41 2010
@@ -25,7 +25,6 @@ import org.apache.openejb.core.Transacti
 import org.apache.openejb.core.JndiFactory;
 import org.apache.openejb.core.ivm.naming.CrossClassLoaderJndiReference;
 import org.apache.openejb.core.ivm.naming.IntraVmJndiReference;
-import org.apache.openejb.core.ivm.naming.IvmContext;
 import org.apache.openejb.core.ivm.naming.JaxWsServiceReference;
 import org.apache.openejb.core.ivm.naming.JndiReference;
 import org.apache.openejb.core.ivm.naming.JndiUrlReference;
@@ -42,7 +41,6 @@ import org.apache.openejb.persistence.Jt
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.core.timer.TimerServiceWrapper;
-import org.apache.xbean.naming.context.WritableContext;
 import org.omg.CORBA.ORB;
 
 import javax.ejb.EJBContext;
@@ -62,11 +60,9 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.io.Serializable;
 
 /**
@@ -324,7 +320,7 @@ public class JndiEncBuilder {
                 throw new OpenEJBException("PersistenceUnit '" + contextInfo.unitId + "' not found for EXTENDED ref '" + contextInfo.referenceName + "'");
             }
 
-            JtaEntityManager jtaEntityManager = new JtaEntityManager(jtaEntityManagerRegistry, factory, contextInfo.properties, contextInfo.extended);
+            JtaEntityManager jtaEntityManager = new JtaEntityManager(contextInfo.persistenceUnitName, jtaEntityManagerRegistry, factory, contextInfo.properties, contextInfo.extended);
             Reference reference = new PersistenceContextReference(jtaEntityManager);
             bindings.put(normalize(contextInfo.referenceName), reference);
         }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java?rev=961032&r1=961031&r2=961032&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java Tue Jul  6 22:09:41 2010
@@ -17,8 +17,10 @@
  */
 package org.apache.openejb.persistence;
 
+import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.LogCategory;
+
 import java.util.Map;
-import java.util.Set;
 
 import javax.persistence.FlushModeType;
 import javax.persistence.LockModeType;
@@ -45,18 +47,23 @@ import javax.persistence.metamodel.Metam
  * be thrown when entity manger is accessed.
  */
 public class JtaEntityManager implements EntityManager {
+
+    private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB.createChild("persistence"), JtaEntityManager.class);
+
     private final JtaEntityManagerRegistry registry;
     private final EntityManagerFactory entityManagerFactory;
     private final Map properties;
     private final boolean extended;
+    private final String unitName;
 
-    public JtaEntityManager(JtaEntityManagerRegistry registry, EntityManagerFactory entityManagerFactory, Map properties) {
-        this(registry, entityManagerFactory, properties, false);
-
+    public JtaEntityManager(JtaEntityManagerRegistry registry, EntityManagerFactory entityManagerFactory, Map properties, String unitName) {
+        this(unitName, registry, entityManagerFactory, properties, false);
     }
-    public JtaEntityManager(JtaEntityManagerRegistry registry, EntityManagerFactory entityManagerFactory, Map properties, boolean extended) {
+    
+    public JtaEntityManager(String unitName, JtaEntityManagerRegistry registry, EntityManagerFactory entityManagerFactory, Map properties, boolean extended) {
         if (registry == null) throw new NullPointerException("registry is null");
         if (entityManagerFactory == null) throw new NullPointerException("entityManagerFactory is null");
+        this.unitName = unitName;
         this.registry = registry;
         this.entityManagerFactory = entityManagerFactory;
         this.properties = properties;
@@ -64,7 +71,7 @@ public class JtaEntityManager implements
     }
 
     private EntityManager getEntityManager() {
-        return registry.getEntityManager(entityManagerFactory, properties, extended);
+        return registry.getEntityManager(entityManagerFactory, properties, extended, unitName);
     }
 
     private boolean isTransactionActive() {
@@ -91,6 +98,7 @@ public class JtaEntityManager implements
     private void closeIfNoTx(EntityManager entityManager) {
         if (!extended && !isTransactionActive()) {
             entityManager.close();
+            logger.debug("Closed EntityManager(unit=" + unitName + ", hashCode=" + entityManager.hashCode() + ")");
         }
     }
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java?rev=961032&r1=961031&r2=961032&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java Tue Jul  6 22:09:41 2010
@@ -18,6 +18,9 @@
 package org.apache.openejb.persistence;
 
 
+import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.LogCategory;
+
 import java.util.Map;
 import java.util.HashMap;
 import javax.persistence.EntityManager;
@@ -35,6 +38,9 @@ import javax.transaction.TransactionSync
  * incoherence.
  */
 public class JtaEntityManagerRegistry {
+
+    private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB.createChild("persistence"), JtaEntityManager.class);
+    
     /**
      * Registry of transaction associated entity managers.
      */
@@ -67,11 +73,12 @@ public class JtaEntityManagerRegistry {
      * @param entityManagerFactory the entity manager factory from which an entity manager is required
      * @param properties the properties passed to the entity manager factory when an entity manager is created
      * @param extended is the entity manager an extended context
+     * @param unitName
      * @return the new entity manager
      * @throws IllegalStateException if the entity manger is extended and there is not an existing entity manager
      * instance already registered
      */
-    public EntityManager getEntityManager(EntityManagerFactory entityManagerFactory, Map properties, boolean extended) throws IllegalStateException {
+    public EntityManager getEntityManager(EntityManagerFactory entityManagerFactory, Map properties, boolean extended, String unitName) throws IllegalStateException {
         if (entityManagerFactory == null) throw new NullPointerException("entityManagerFactory is null");
         EntityManagerTxKey txKey = new EntityManagerTxKey(entityManagerFactory);
         boolean transactionActive = isTransactionActive();
@@ -99,6 +106,7 @@ public class JtaEntityManagerRegistry {
 
             return entityManager;
         } else {
+
             // create a new entity manager
             EntityManager entityManager;
             if (properties != null) {
@@ -107,10 +115,12 @@ public class JtaEntityManagerRegistry {
                 entityManager = entityManagerFactory.createEntityManager();
             }
 
+            logger.debug("Created EntityManager(unit=" + unitName + ", hashCode=" + entityManager.hashCode() + ")");
+
             // if we are in a transaction associate the entity manager with the transaction; otherwise it is
             // expected the caller will close this entity manager after use
             if (transactionActive) {
-                transactionRegistry.registerInterposedSynchronization(new CloseEntityManager(entityManager));
+                transactionRegistry.registerInterposedSynchronization(new CloseEntityManager(entityManager, unitName));
                 transactionRegistry.putResource(txKey, entityManager);
             }
             return entityManager;
@@ -282,9 +292,11 @@ public class JtaEntityManagerRegistry {
 
     private static class CloseEntityManager implements Synchronization {
         private final EntityManager entityManager;
+        private String unitName;
 
-        public CloseEntityManager(EntityManager entityManager) {
+        public CloseEntityManager(EntityManager entityManager, String unitName) {
             this.entityManager = entityManager;
+            this.unitName = unitName;
         }
 
         public void beforeCompletion() {
@@ -292,6 +304,7 @@ public class JtaEntityManagerRegistry {
 
         public void afterCompletion(int i) {
             entityManager.close();
+            logger.debug("Closed EntityManager(unit=" + unitName + ", hashCode=" + entityManager.hashCode() + ")");
         }
     }
 }