]
Matěj Novotný commented on WFLY-11906:
--------------------------------------
Ccing [~mkouba] as I would be curious to hear his take on this.
Managed Executor Task Fails with CDI if created from Batchlet
-------------------------------------------------------------
Key: WFLY-11906
URL:
https://issues.jboss.org/browse/WFLY-11906
Project: WildFly
Issue Type: Bug
Components: Batch, CDI / Weld, Concurrency Utilities
Affects Versions: 16.0.0.Final
Environment: Java 8
Reporter: Cody Lerum
Assignee: Cheng Fang
Priority: Major
This previously was working (verified in reproducer) on Wildfly 14.0.1
Inside of a batchlet if a Managed Executor Task is executed and that Task uses
CDI.current() an exception is thrown
{code:java}
11:00:02,343 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1)
java.lang.IllegalStateException: WFLYWELD0039: Singleton not set for ModuleClassLoader for
Module "org.jboss.as.ee" version 16.0.0.Final from local module loader @78e94dcf
(finder: local module finder @233fe9b6 (roots:
V:\opt\wildfly-16.0.0.Final\modules,V:\opt\wildfly-16.0.0.Final\modules\system\layers\base)).
This means that you are trying to access a weld deployment with a Thread Context
ClassLoader that is not associated with the deployment.
11:00:02,344 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.jboss.as.weld.services.ModuleGroupSingletonProvider$TCCLSingleton.get(ModuleGroupSingletonProvider.java:77)
11:00:02,344 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.jboss.as.weld.services.ModuleGroupSingletonProvider$TCCLSingleton.get(ModuleGroupSingletonProvider.java:134)
11:00:02,344 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.jboss.weld.Container.instance(Container.java:57)
11:00:02,344 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.jboss.as.weld.WeldProvider.getCDI(WeldProvider.java:69)
11:00:02,344 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
javax.enterprise.inject.spi.CDI.lambda$getCDIProvider$0(CDI.java:87)
11:00:02,345 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
11:00:02,345 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.TreeMap$KeySpliterator.tryAdvance(TreeMap.java:2770)
11:00:02,345 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
11:00:02,345 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
11:00:02,345 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
11:00:02,345 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
11:00:02,346 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
11:00:02,346 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
11:00:02,346 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
11:00:02,346 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
javax.enterprise.inject.spi.CDI.getCDIProvider(CDI.java:88)
11:00:02,346 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
javax.enterprise.inject.spi.CDI.current(CDI.java:64)
11:00:02,346 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
com.outjected.demo.DemoTask.run(DemoTask.java:27)
11:00:02,347 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.jboss.as.ee.concurrent.ControlPointUtils$ControlledRunnable.run(ControlPointUtils.java:105)
11:00:02,347 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
11:00:02,347 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
11:00:02,347 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.concurrent.FutureTask.run(FutureTask.java)
11:00:02,348 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.glassfish.enterprise.concurrent.internal.ManagedFutureTask.run(ManagedFutureTask.java:141)
11:00:02,348 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
11:00:02,348 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
11:00:02,348 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
java.lang.Thread.run(Thread.java:748)
11:00:02,349 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:250)
11:00:02,349 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-1) at
org.jboss.as.ee.concurrent.service.ElytronManagedThreadFactory$ElytronManagedThread.run(ElytronManagedThreadFactory.java:85)
{code}