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 2014/10/07 10:59:23 UTC
svn commit: r1629829 -
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
Author: rmannibucau
Date: Tue Oct 7 08:59:23 2014
New Revision: 1629829
URL: http://svn.apache.org/r1629829
Log:
TOMEE-1384 tolerate late serialization of session with ejb
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java?rev=1629829&r1=1629828&r2=1629829&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java Tue Oct 7 08:59:23 2014
@@ -233,7 +233,19 @@ public abstract class BaseEjbProxyHandle
@Override
public Object invoke(final Object proxy, Method method, Object[] args) throws Throwable {
- isValidReference(method);
+ try {
+ isValidReference(method);
+ } catch (final IllegalStateException ise) {
+ // bean was undeployed
+ if (method.getName().equals("writeReplace")) { // session serialization, we just need to replace this
+ final BeanContext beanContext = beanContextRef.get();
+ final Object id = beanContext.getDeploymentID();
+ if (beanContext != null && id != null) {
+ return _writeReplace(proxy);
+ }
+ }
+ throw ise;
+ }
if (args == null) {
args = new Object[]{};