The JIRA shouldn't be resolved. The update was backed out because it broke a number of unit tests.
I'm very happy for you to create a JIRA and work on it, that's much appreciated. I too don't know specifically what the issue is - if you've managed to pin the breakage down to a specific OWB commit, you're doing better than me :-). I don't think its "showstopping" issue for the release though - if its going to take a little time to get working and a green build, I'd prefer to do two releases (one now and one when its working) than hold up this release which includes Tomcat updates to address CVEs. Releases are getting easier the more frequently we do them. Jon On Tue, Jul 21, 2020 at 1:36 PM Vicente Rossello <[email protected]> wrote: > 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 < > [email protected]> 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 > > >
