You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/04/06 19:39:32 UTC
svn commit: r526234 - in /incubator/openejb/trunk/openejb3:
container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java
server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java
Author: dain
Date: Fri Apr 6 10:39:31 2007
New Revision: 526234
URL: http://svn.apache.org/viewvc?view=rev&rev=526234
Log:
A NoSuchEntityException from a BMP ejbLoad must be converted to a NoSuchObjectException
Entity bean proxies should not be invalidated since an entity bean can seamlessly reattach to a new instance loaded from the database
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java
incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java?view=diff&rev=526234&r1=526233&r2=526234
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java Fri Apr 6 10:39:31 2007
@@ -30,12 +30,14 @@
import org.apache.openejb.util.Stack;
import javax.ejb.EntityBean;
+import javax.ejb.NoSuchEntityException;
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.Synchronization;
import javax.transaction.SystemException;
import java.util.HashMap;
import java.util.Hashtable;
+import java.rmi.NoSuchObjectException;
public class EntityInstanceManager {
@@ -113,7 +115,7 @@
* its likely that the application server would have already made the reference invalid, but this bit of
* code is an extra precaution.
*/
- throw new org.apache.openejb.InvalidateReferenceException(new javax.ejb.NoSuchEntityException("Entity not found: " + primaryKey));
+ throw new org.apache.openejb.InvalidateReferenceException(new NoSuchObjectException("Entity not found: " + primaryKey));
} else if (callContext.getCurrentOperation() == Operation.REMOVE) {
/*
* To avoid calling ejbStore( ) on a bean that after its removed, we can not delegate
@@ -179,6 +181,8 @@
BaseContext.State[] originalStates = callContext.setCurrentAllowedStates(EntityContext.getStates());
try {
bean.ejbLoad();
+ } catch (NoSuchEntityException e) {
+ throw new org.apache.openejb.InvalidateReferenceException(new NoSuchObjectException("Entity not found: " + primaryKey).initCause(e));
} catch (Exception e) {
logger.error("Exception encountered during ejbLoad():", e);
Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java?view=diff&rev=526234&r1=526233&r2=526234
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java Fri Apr 6 10:39:31 2007
@@ -79,4 +79,9 @@
}
}
+ protected void invalidateReference() {
+ // entity bean object references should not be invalidated since they
+ // will automatically hook up to a new instance of the bean using the
+ // primary key (we will load a new instance from the db)
+ }
}