[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