You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/10/06 16:58:44 UTC
svn commit: r1395080 -
/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
Author: rmannibucau
Date: Sat Oct 6 14:58:43 2012
New Revision: 1395080
URL: http://svn.apache.org/viewvc?rev=1395080&view=rev
Log:
TOMEE-445 catching NoSuchObjectException
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java?rev=1395080&r1=1395079&r2=1395080&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java Sat Oct 6 14:58:43 2012
@@ -18,6 +18,7 @@ package org.apache.openejb.cdi;
import org.apache.openejb.BeanContext;
import org.apache.openejb.BeanType;
+import org.apache.openejb.OpenEJBRuntimeException;
import org.apache.openejb.assembler.classic.ProxyInterfaceResolver;
import org.apache.webbeans.component.OwbBean;
import org.apache.webbeans.component.WebBeansType;
@@ -37,6 +38,7 @@ import java.lang.annotation.Annotation;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
+import java.rmi.NoSuchObjectException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -175,6 +177,15 @@ public class CdiEjbBean<T> extends BaseE
((BeanContext.Removable) proxyInstance).$$remove();
} catch (NoSuchEJBException nsee) {
// no-op
+ } catch (Exception nsoe) {
+ if (nsoe instanceof NoSuchObjectException) {
+ // no-op
+ } else {
+ if (nsoe instanceof RuntimeException) {
+ throw (RuntimeException) nsoe;
+ }
+ throw new OpenEJBRuntimeException(nsoe);
+ }
}
}
}
@@ -283,6 +294,8 @@ public class CdiEjbBean<T> extends BaseE
Object ejbInstance = dependentSFSBToBeRemoved.remove(System.identityHashCode(instance));
if (ejbInstance != null) {
destroyStatefulSessionBeanInstance((T) ejbInstance, cc);
+ } else {
+ destroyStatefulSessionBeanInstance(instance, cc);
}
}