[jboss-cvs] JBossAS SVN: r64310 - branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 26 11:49:16 EDT 2007


Author: bdecoste
Date: 2007-07-26 11:49:16 -0400 (Thu, 26 Jul 2007)
New Revision: 64310

Modified:
   branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulBeanContextReference.java
   branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxy.java
Log:
[EJBTHREE-1019] guid and oid use for Ejb3Registry. Tests are passing, but I still need to rework this. Not happy with the current implementation.

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulBeanContextReference.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulBeanContextReference.java	2007-07-26 15:25:49 UTC (rev 64309)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulBeanContextReference.java	2007-07-26 15:49:16 UTC (rev 64310)
@@ -40,9 +40,8 @@
    
    private transient StatefulBeanContext beanContext;
    private Object oid;
-   private String containerId;
-   
-   
+   private String containerGuid;
+   private String containerOid;
 
    public StatefulBeanContextReference()
    {
@@ -52,18 +51,21 @@
    {
       this.beanContext = beanContext;
       oid = beanContext.getId();
-      containerId = Ejb3Registry.guid(beanContext.getContainer());
+      containerGuid = Ejb3Registry.guid(beanContext.getContainer());
+      containerOid = Ejb3Registry.oid(beanContext.getContainer());
    }
 
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
    {
-      containerId = in.readUTF();
+      containerGuid = in.readUTF();
+      containerOid = in.readUTF();
       oid = in.readObject();
    }
 
    public void writeExternal(ObjectOutput out) throws IOException
    {
-      out.writeUTF(containerId);
+      out.writeUTF(containerGuid);
+      out.writeUTF(containerOid);
       out.writeObject(oid);
    }
 
@@ -71,7 +73,9 @@
    {
       if (beanContext == null)
       {
-         StatefulContainer container = (StatefulContainer)Ejb3Registry.getContainer(containerId);
+         StatefulContainer container = (StatefulContainer)Ejb3Registry.findContainer(containerGuid);
+         if (container == null)
+            container = (StatefulContainer)Ejb3Registry.getClusterContainer(containerOid);
          // We are willing to accept a context that has been marked as removed
          // as it can still hold nested children
          beanContext = container.getCache().get(oid, false);

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxy.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxy.java	2007-07-26 15:25:49 UTC (rev 64309)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxy.java	2007-07-26 15:49:16 UTC (rev 64310)
@@ -30,10 +30,12 @@
 
 import javax.ejb.EJBException;
 
+import org.jboss.aop.util.MethodHashing;
 import org.jboss.aspects.asynch.AsynchMixin;
 import org.jboss.aspects.asynch.AsynchProvider;
 import org.jboss.aspects.asynch.FutureHolder;
 import org.jboss.ejb3.Container;
+import org.jboss.ejb3.Ejb3Registry;
 import org.jboss.ejb3.LocalProxy;
 import org.jboss.ejb3.ProxyUtils;
 import org.jboss.util.id.GUID;
@@ -99,11 +101,14 @@
          return ret;
       }
       
-      if (getContainer() == null)
+      Container container = Ejb3Registry.findContainer(containerGuid);
+      if (container == null && Ejb3Registry.hasClusterContainer(containerOid))
+         container = Ejb3Registry.getClusterContainer(containerOid);
+      
+      if (container == null)
          throw new EJBException("Invalid (i.e. remote) invocation of local interface (null container)");
-
-      StatefulContainer sfsb = (StatefulContainer) getContainer();
       
+      StatefulContainer sfsb = (StatefulContainer)container;
       return sfsb.localInvoke(id, method, args, (FutureHolder) provider);
    }
 




More information about the jboss-cvs-commits mailing list