[ 
https://issues.apache.org/jira/browse/TOMEE-508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13491308#comment-13491308
 ] 

Donatas Ciuksys commented on TOMEE-508:
---------------------------------------

The EntityManager dependency is no longer considered as not passivation capable 
as of: 
apache-tomee-1.5.1-20121106.041324-61-webprofile.zip

This issue may be closed.
                
> EntityManager dependency considered not passivation capable (CDI spec 
> violation)
> --------------------------------------------------------------------------------
>
>                 Key: TOMEE-508
>                 URL: https://issues.apache.org/jira/browse/TOMEE-508
>             Project: TomEE
>          Issue Type: Bug
>    Affects Versions: 1.5.0, 1.5.1
>         Environment: Windows 7 x64; jdk1.7.0_09 32 bit; 
> apache-tomee-1.5.1-20121026.064316-51-webprofile.zip
>            Reporter: Donatas Ciuksys
>            Priority: Blocker
>             Fix For: 1.5.1
>
>
> 1. Create class EntityManagerProducer:
> @SessionScoped
> @Stateful
> public class EntityManagerProducer implements Serializable {
>     
>     @PersistenceContext(type=PersistenceContextType.EXTENDED)
>     private EntityManager em;
>     
>     @Produces
>     public EntityManager getEntityManager() {
>         return em;
>     }
> }
> 2. Create injection client:
> @Named
> @SessionScoped
> @Stateful
> public class A implements Serializable  {
>     
>     @Inject
>     private EntityManager em;
>     public String getDelegateClassName() {
>         return em.getDelegate().getClass().getCanonicalName();
>     }
>     
> }
> 3. Create JSF page and try to call getDelegateClassName():
>     <h:body>
>         EntityManager is open: #{a.delegateClassName}
>     </h:body>
> 4. Try to deploy the application to tomee - observe error message:
> Caused by: org.apache.openejb.OpenEJBRuntimeException: 
> org.apache.webbeans.exception.WebBeansConfigurationException: Passivation 
> capable beans must satisfy passivation capable dependencies. Bean : A, 
> Name:a, WebBeans Type:ENTERPRISE, API Types:[java.lang.Object,beans.A], 
> Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]
>  does not satisfy. Details about the Injection-point: Field Injection Point, 
> field name :  em, Bean Owner : [A, Name:a, WebBeans Type:ENTERPRISE, API 
> Types:[java.lang.Object,beans.A], 
> Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]]
>       at 
> org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:323)
>       at 
> org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:150)
>       ... 48 more
> Caused by: org.apache.webbeans.exception.WebBeansConfigurationException: 
> Passivation capable beans must satisfy passivation capable dependencies. Bean 
> : A, Name:a, WebBeans Type:ENTERPRISE, API Types:[java.lang.Object,beans.A], 
> Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]
>  does not satisfy. Details about the Injection-point: Field Injection Point, 
> field name :  em, Bean Owner : [A, Name:a, WebBeans Type:ENTERPRISE, API 
> Types:[java.lang.Object,beans.A], 
> Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]]
>       at 
> org.apache.webbeans.component.AbstractOwbBean.validatePassivationDependencies(AbstractOwbBean.java:695)
>       at 
> org.apache.webbeans.component.AbstractInjectionTargetBean.validatePassivationDependencies(AbstractInjectionTargetBean.java:595)
>       at 
> org.apache.openejb.cdi.BeansDeployer.checkPassivationScope(BeansDeployer.java:414)
>       at org.apache.openejb.cdi.BeansDeployer.validate(BeansDeployer.java:260)
>       at 
> org.apache.openejb.cdi.BeansDeployer.validateInjectionPoints(BeansDeployer.java:222)
>       at 
> org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:280)
>       ... 49 more
> ---------------------------------
> I think this is CDI specification violation - page 3 of CDI specification 
> contains following example:
> @SessionScoped @Model
> public class Login implements Serializable {
>     @Inject Credentials credentials;
>     @Inject @Users EntityManager userDatabase;
> ...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to