The concurrency changes that come in with EE10 have obviously meant some changes were needed in TomEE. Generally it looks to be working very well. Thanks for merging in the my last change around CDI async observers!
I've come across a similar use-case, specifically: 1. Call a stateless session bean (A) 2. Bean A uses a ManagedExecutorService to make multiple calls to another Stateless session bean (B) 3. Bean B makes a call to Bean C, and also uses the ManagedExecutorService to run some other tasks. What I've observed is, that despite the default executor service being setup to no propagate transactions, it seemed to happen anyway, in a listener that EjbTransactionUtil adds to ThreadContext and gets fired when ThreadContext.enter() is called. The listener is fired on every call, and it doesn't know the context of what's happening, and it always propagates the transaction if it is there. In the PR (https://github.com/apache/tomee/pull/1762) I added a parameter to specify whether this should happen or not, and modified the SecurityThreadContextProvider and ApplicationThreadContextProvider to not propagate the transaction. I'm open to better approaches though as this doesn't feel optimal. Does anyone have any thoughts? Jon