Henry Kuijpers created SLING-12306: -------------------------------------- Summary: Sling mock: JUnit 5 parallel execution results in unregistered adapter factories Key: SLING-12306 URL: https://issues.apache.org/jira/browse/SLING-12306 Project: Sling Issue Type: Bug Reporter: Henry Kuijpers
We have junit-jupiter.properties: {code:java} junit.jupiter.execution.parallel.enabled = true junit.jupiter.execution.parallel.mode.default = same_thread junit.jupiter.execution.parallel.mode.classes.default = concurrent {code} And this results, randomly everytime, in lots of tests failing because of missing adapter factories. We sometimes see that `boundAdapterFactories` is an empty list. Sometimes we see that `factoryCache` is a filled map, with all value lists empty. We usually see the expected `descriptors` having variable content. One time it has 4 entries for o.a.s.a.r.Resource, the other run it has 5 entries. I believe this is a concurrency issue somehow. I can reproduce it on older versions as well (previously we couldn't). So there could also be something with dependencies involved. ---- More specifically, we seem to get a lot of these stack traces like this: {code:java} java.lang.RuntimeException: No page manager. at io.wcm.testing.mock.aem.context.AemContextImpl.pageManager(AemContextImpl.java:169) at io.wcm.testing.mock.aem.context.AemContextImpl.currentPage(AemContextImpl.java:229) {code} (also posting this for findability on search engines) And also a lot of cases where a Resource cannot be adapted to a ValueMap for example. Which boils down to the adapter factory that can adapt a ResourceResolver to a PageManager, missing or actually not registered yet. We do have the proper @ExtendWith etc setup. -- This message was sent by Atlassian Jira (v8.20.10#820010)