[jboss-jira] [JBoss JIRA] (WFLY-7841) ManagedScheduledExecutorService could not find EntityManager produced by CDI producer. No active context.

Tibor Digana (JIRA) issues at jboss.org
Tue Jan 3 12:02:00 EST 2017


    [ https://issues.jboss.org/browse/WFLY-7841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13342699#comment-13342699 ] 

Tibor Digana commented on WFLY-7841:
------------------------------------

Guys, the cdi concurrency without automatically activated context is really useless.
Automatically activating the context is the idea of the word "Managed" in the executor interface; otherwise I could simply use J2SE utilities without making any difference.
As a comparison with EJB 3.0 @Schedule the request scope works and it is the only scope of the bean which makes sense; otherwise I could not imaging any other scope like session or view which has obviously no notion about HTTP. As a comparison with EJB Timer, even if you try to fetch {{SessionScoped}} EJB bean to the EJB Thread you may expect an exception. And therefore request scope in managed thread means for me that the {{#submit() method}} forks as short lifecycle as possible and I have guarantee that two calls of {{#submit() method}} successfully isolates the jobs and no data is shared which is perfect isolation which in J2SE would not be anyhow more simple without using {{ThreadLocal}} and therefore CDI is so perfect and straightforward for me.

> ManagedScheduledExecutorService could not find EntityManager produced by CDI producer. No active context.
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: WFLY-7841
>                 URL: https://issues.jboss.org/browse/WFLY-7841
>             Project: WildFly
>          Issue Type: Bug
>          Components: CDI / Weld
>    Affects Versions: 10.0.0.Final, 10.1.0.Final
>            Reporter: Tibor Digana
>            Assignee: Stuart Douglas
>
> The problem is that _EntityManager_ does not have managed delegate within a job executed by _ManagedScheduledExecutorService#scheduleAtFixedRate()_.
> The _EntityManager_ is produced by CDI producer and entire web application is able to work with injected _EntityManager_ except for the jobs.
> I tried to schedule executing the job in two ways and both finished with same issue (No managed context in _EntityManager_) :
> * _ at ApplicationScoped_ job instance was passed to executor from caller.
> * The job was changed to _RequestScoped_ and _ContextProxy#createContextualProxy()_ created the Job bean instance and then I called _scheduleAtFixedRate(job, 5, 60, SECONDS)_
> It looks to me that _javax.enterprise.concurrent_ has a different _BeanManager_ and therefore has no notion about my CDI Producer of _EntityManager_. The producer is regular producer of _EntityManager_ in JavaEE.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list