Hi, Looking at the OWB upgrade, I see that the JIRA issue is resolved ( https://issues.apache.org/jira/browse/TOMEE-2809 ) but it was reverted in a subsequent commit for some reason (I guess there is an issue with application composer), so 2.0.12 it's still in.
I would love to help with this but I have no idea of the issue. This applicationComposer starts correctly with 2.0.15 (I have simplified without extensions since I use junit 5): import org.apache.openejb.jee.WebApp; import org.apache.openejb.testing.Application; import org.apache.openejb.testing.ApplicationComposers; import org.apache.openejb.testing.Classes; import org.apache.openejb.testing.Module; import org.junit.jupiter.api.Test; public class SomeTest { @Module @Classes(cdi = true) public WebApp app() { return new WebApp() .contextRoot("/") .addServlet("REST Application", Application.class.getName()); } @Test public void start() { ApplicationComposers.run(SomeTest.class, new String[]{}); } } But it doesn't work with 2.0.16 (note that it also works with cdi = false). The error is: java.lang.IllegalStateException: On a thread without an initialized context nor a classloader mapping a deployed app org.apache.openejb.OpenEJBRuntimeException: java.lang.IllegalStateException: On a thread without an initialized context nor a classloader mapping a deployed app at org.apache.openejb.testing.ApplicationComposers.run(ApplicationComposers.java:1563) at com.tr2.web.admin.SomeTest.start(SomeTest.java:22) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:212) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:208) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:171) at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:115) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:171) at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:115) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:171) at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177) Caused by: java.lang.IllegalStateException: On a thread without an initialized context nor a classloader mapping a deployed app at org.apache.openejb.cdi.ThreadSingletonServiceImpl.get(ThreadSingletonServiceImpl.java:350) at org.apache.openejb.cdi.ThreadSingletonServiceImpl.getContext(ThreadSingletonServiceImpl.java:326) at org.apache.openejb.cdi.ThreadSingletonServiceImpl.get(ThreadSingletonServiceImpl.java:361) at org.apache.openejb.cdi.ThreadSingletonServiceImpl.get(ThreadSingletonServiceImpl.java:69) at org.apache.webbeans.config.WebBeansFinder.getSingletonInstance(WebBeansFinder.java:57) at org.apache.webbeans.config.WebBeansContext.getInstance(WebBeansContext.java:182) at org.apache.webbeans.config.WebBeansContext.currentInstance(WebBeansContext.java:200) at org.apache.webbeans.ee.event.TransactionalEventNotifier.registerTransactionSynchronization(TransactionalEventNotifier.java:70) at org.apache.openejb.cdi.OpenEJBTransactionService.registerTransactionSynchronization(OpenEJBTransactionService.java:94) at org.apache.webbeans.event.NotificationManager.doFireSync(NotificationManager.java:731) at org.apache.webbeans.event.NotificationManager.doFireEvent(NotificationManager.java:667) at org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:651) at org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:495) at org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:469) at org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:453) at org.apache.webbeans.container.BeanManagerImpl.fireContextLifecyleEvent(BeanManagerImpl.java:479) at org.apache.webbeans.web.context.WebContextsService.initSessionContext(WebContextsService.java:503) at org.apache.webbeans.web.context.WebContextsService.startContext(WebContextsService.java:314) at org.apache.openejb.cdi.ScopeHelper.startContexts(ScopeHelper.java:35) at org.apache.openejb.testing.ApplicationComposers.deployApp(ApplicationComposers.java:727) at org.apache.openejb.testing.ApplicationComposers.before(ApplicationComposers.java:386) at org.apache.openejb.testing.ApplicationComposers.run(ApplicationComposers.java:1532) ... 59 more I guess that the break comes from: https://github.com/apache/openwebbeans/commit/1f79dc5ee9fa3e9675620fd2291b63094b4933c9 , since I can't see an explicit start in tomee (looking at TransactionalEventNotifier.java:70) Want me to create a JIRA issue? I would love to have 2.0.17 so we can use java 14 records Best regards, Vicente. On Tue, Jul 21, 2020 at 12:23 PM Jonathan Gallimore < jonathan.gallim...@gmail.com> wrote: > We've had some updated dependencies, some fixes around MDB instance limits, > and a couple of other bugs fixes. We're also starting to get into a slight > better momentum with regular releases. > > So - I'm going to roll an 8.0.4 and 9.0.0-M2 release now, and I'll > follow up with releases for the two 7.x branches as well. > > If there's a showstopper, please let me know. > > Thanks > > Jon >