]
Tibor Digana closed WFLY-7841.
------------------------------
Resolution: Explained
I think this is not a bug because the Managed theread pools in Java EE are supposed to be
managed in the sense of Thread lifecycle and not in the sense of CDI managed beans. After
experience with it I found that the RequestScoped job has no end and EntityManager or
Hibernate's Session is not closed which is quite useless 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_) :
* _@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.