[jboss-cvs] JBossAS SVN: r62278 - in branches/Branch_4_2/server/src: main/org/jboss/ejb and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 11 13:06:56 EDT 2007


Author: alex.loubyansky at jboss.com
Date: 2007-04-11 13:06:56 -0400 (Wed, 11 Apr 2007)
New Revision: 62278

Modified:
   branches/Branch_4_2/server/src/etc/conf/default/standardjbosscmp-jdbc.xml
   branches/Branch_4_2/server/src/main/org/jboss/ejb/GlobalTxEntityMap.java
   branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityCreationInterceptor.java
   branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityInstanceInterceptor.java
Log:
JBAS-4304

Modified: branches/Branch_4_2/server/src/etc/conf/default/standardjbosscmp-jdbc.xml
===================================================================
--- branches/Branch_4_2/server/src/etc/conf/default/standardjbosscmp-jdbc.xml	2007-04-11 16:53:00 UTC (rev 62277)
+++ branches/Branch_4_2/server/src/etc/conf/default/standardjbosscmp-jdbc.xml	2007-04-11 17:06:56 UTC (rev 62278)
@@ -1823,6 +1823,10 @@
             <function-name>count</function-name>
             <function-sql>count(?1)</function-sql>
          </function-mapping>
+         <function-mapping>
+           <function-name>locate</function-name>
+           <function-sql>{fn locate(?1, ?2)}</function-sql>
+         </function-mapping>
 
          <mapping>
             <java-type>java.lang.Character</java-type>

Modified: branches/Branch_4_2/server/src/main/org/jboss/ejb/GlobalTxEntityMap.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/ejb/GlobalTxEntityMap.java	2007-04-11 16:53:00 UTC (rev 62277)
+++ branches/Branch_4_2/server/src/main/org/jboss/ejb/GlobalTxEntityMap.java	2007-04-11 17:06:56 UTC (rev 62278)
@@ -197,6 +197,25 @@
    };
 
    /**
+    * Used for instances in the create phase,
+    * i.e. before the ejbCreate and until after the ejbPostCreate returns
+    */
+   public static final TxAssociation NOT_READY = new TxAssociation()
+   {
+      public void scheduleSync(Transaction tx, EntityEnterpriseContext instance)
+      {
+      }
+
+      public void synchronize(Thread thread, Transaction tx, EntityEnterpriseContext instance) throws Exception
+      {
+      }
+
+      public void invokeEjbStore(Thread thread, EntityEnterpriseContext instance) throws Exception
+      {
+      }
+   };
+
+   /**
     * sync all EntityEnterpriseContext that are involved (and changed)
     * within a transaction.
     */

Modified: branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityCreationInterceptor.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityCreationInterceptor.java	2007-04-11 16:53:00 UTC (rev 62277)
+++ branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityCreationInterceptor.java	2007-04-11 17:06:56 UTC (rev 62278)
@@ -22,7 +22,9 @@
 package org.jboss.ejb.plugins;
 
 import org.jboss.ejb.EntityEnterpriseContext;
+import org.jboss.ejb.GlobalTxEntityMap;
 import org.jboss.invocation.Invocation;
+import org.jboss.tm.TxUtils;
 
 
 /**
@@ -51,11 +53,17 @@
          // copy from the context into the mi
          // interceptors down the chain look in the mi for the id not the ctx.
          mi.setId(ctx.getId());
-         
+
          // invoke down the invoke chain
          // the final interceptor in EntityContainer will redirect this
          // call to postCreateEntity, which calls ejbPostCreate
          getNext().invoke(mi);
+
+         // now it's ready and can be scheduled for the synchronization
+         if(TxUtils.isActive(mi.getTransaction()))
+         {
+            GlobalTxEntityMap.NONE.scheduleSync(mi.getTransaction(), ctx);
+         }
       }
       
       return retVal;

Modified: branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityInstanceInterceptor.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityInstanceInterceptor.java	2007-04-11 16:53:00 UTC (rev 62277)
+++ branches/Branch_4_2/server/src/main/org/jboss/ejb/plugins/EntityInstanceInterceptor.java	2007-04-11 17:06:56 UTC (rev 62278)
@@ -27,6 +27,7 @@
 import org.jboss.ejb.EntityEnterpriseContext;
 import org.jboss.ejb.InstanceCache;
 import org.jboss.ejb.AllowedOperationsAssociation;
+import org.jboss.ejb.GlobalTxEntityMap;
 import org.jboss.ejb.InstancePool;
 import org.jboss.invocation.Invocation;
 import org.jboss.invocation.InvocationType;
@@ -111,6 +112,7 @@
       // Get context
       EntityContainer container = (EntityContainer) getContainer();
       EntityEnterpriseContext ctx = (EntityEnterpriseContext) container.getInstancePool().get();
+      ctx.setTxAssociation(GlobalTxEntityMap.NOT_READY);
       InstancePool pool = container.getInstancePool();
 
       // Pass it to the method invocation




More information about the jboss-cvs-commits mailing list