You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ge...@apache.org on 2011/05/26 05:43:42 UTC

svn commit: r1127777 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java

Author: genspring
Date: Thu May 26 03:43:41 2011
New Revision: 1127777

URL: http://svn.apache.org/viewvc?rev=1127777&view=rev
Log:
OPENEJB-1558 don't copy the returned aync method return value for now because FutureAdaptor is not serializable.

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java?rev=1127777&r1=1127776&r2=1127777&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java Thu May 26 03:43:41 2011
@@ -270,17 +270,23 @@ public abstract class BaseEjbProxyHandle
                     IntraVmCopyMonitor.post();
                 }
             }
-
+            IntraVmCopyMonitor.State oldStrategy =  strategy;
+            if (getBeanContext().isAsynchronous(method)){
+                strategy = IntraVmCopyMonitor.State.NONE;
+            }
+   
             try {
 
                 Object returnValue = _invoke(proxy, interfce, method, args);
-
                 return copy(strategy, returnValue);
             } catch (Throwable throwable) {
                 throwable = copy(strategy, throwable);
                 throw convertException(throwable, method, interfce);
+            } finally {
+                strategy = oldStrategy;
             }
         } finally {
+            
             if (callContext == null && localClientIdentity != null) {
                 SecurityService securityService = SystemInstance.get().getComponent(SecurityService.class);
                 securityService.disassociate();