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);
         }
     }