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


Reply via email to