Author: rmannibucau
Date: Thu Feb  7 15:12:06 2013
New Revision: 1443537

URL: http://svn.apache.org/viewvc?rev=1443537&view=rev
Log:
don't validate passivation for ejb which are not stateful - a lookup doesn't 
care

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java?rev=1443537&r1=1443536&r2=1443537&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
 Thu Feb  7 15:12:06 2013
@@ -70,10 +70,14 @@ public class CdiEjbBean<T> extends BaseE
         passivatingId = beanContext.getDeploymentID() + 
getReturnType().getName();
     }
 
-    @Override // copied to be able to produce EM (should be fixed in OWB for 
next CDI spec)
+    @Override
     public void validatePassivationDependencies() {
-        // if(isPassivationCapable()) {
-        
if(getWebBeansContext().getBeanManagerImpl().isPassivatingScope(getScope())) { 
// not @Dependent otherwise we either can't inject EJB in serializable beans or 
the opposite
+        if (!BeanType.STATEFUL.equals(beanContext.getComponentType())) { // 
always serializable since we redo a lookup
+            return;
+        }
+
+        final Class<? extends Annotation> scope = getScope();
+        
if(getWebBeansContext().getBeanManagerImpl().isPassivatingScope(scope)) { // 
not @Dependent otherwise we either can't inject EJB in serializable beans or 
the opposite
             final Set<InjectionPoint> beanInjectionPoints = 
getInjectionPoints();
             for(InjectionPoint injectionPoint : beanInjectionPoints) {
                 if(!injectionPoint.isTransient()) {
@@ -107,12 +111,12 @@ public class CdiEjbBean<T> extends BaseE
         for (InterceptorData interceptorData : interceptorStack) {
             if (interceptorData.isDefinedWithWebBeansInterceptor()) {
                 WebBeansInterceptor<?> interceptor = (WebBeansInterceptor<?>) 
interceptorData.getWebBeansInterceptor();
-                if (!interceptor.isPassivationCapable()) {
-                    throw new 
WebBeansConfigurationException(MessageFormat.format(
-                            
WebBeansLoggerFacade.getTokenString(OWBLogConst.EXCEPT_0016), toString()));
-                } else {
-                    interceptor.validatePassivationDependencies();
-                }
+                    if (!interceptor.isPassivationCapable()) {
+                        throw new 
WebBeansConfigurationException(MessageFormat.format(
+                                
WebBeansLoggerFacade.getTokenString(OWBLogConst.EXCEPT_0016), toString()));
+                    } else {
+                        interceptor.validatePassivationDependencies();
+                    }
             } else {
                 if (interceptorData.isDefinedInInterceptorClass()) {
                     Class<?> interceptorClass = 
interceptorData.getInterceptorClass();


Reply via email to