Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-11906

Managed Executor Task Fails with CDI if created from Batchlet

XMLWordPrintable

    • Hide

      Deploy reproducer war from https://github.com/codylerum/batch-mes-failure

      Browse to http://localhost:8080/demo

      Click on the two options which either fire a Managed Executor Task or a CDI Async Event

      Deploy on Wildfly 14.0.1 to see it function correctly.

      Deploy on Wildfly 16.0.0 to see exception.

      Show
      Deploy reproducer war from https://github.com/codylerum/batch-mes-failure Browse to http://localhost:8080/demo Click on the two options which either fire a Managed Executor Task or a CDI Async Event Deploy on Wildfly 14.0.1 to see it function correctly. Deploy on Wildfly 16.0.0 to see exception.

      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

      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)
      

              cfang@redhat.com Cheng Fang
              cody.lerum@gmail.com Cody Lerum
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: