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 2013/02/07 16:12:06 UTC

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

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