You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@grails.apache.org by "borinquenkid (via GitHub)" <gi...@apache.org> on 2026/05/12 18:06:48 UTC
[PR] GORM: Shared Mapping Registry ($O(M+N)$ Scaling) [grails-core]
borinquenkid opened a new pull request, #15656:
URL: https://github.com/apache/grails-core/pull/15656
## Description
<!-- Describe your change and the problem it solves. Link to the related issue(s) if they exist. -->
## Contributor Checklist
Please review the following checklist before submitting your pull request. Pull requests that do not meet these requirements may be closed without review.
### Issue and Scope
- [ ] This PR is linked to an existing issue that has been **acknowledged or approved** by the project team. If no approved issue exists, please give background on why this change is necessary. Tickets are preferred for release change log history.
- [ ] This PR addresses the **complete scope** of the linked issue. Partial implementations or unfinished work should not be submitted for review.
- [ ] This PR contains a **single, focused change**. Unrelated changes should be submitted as separate pull requests.
- [ ] This PR targets the **correct branch** for the type of change:
- **Patch release branches** (e.g., `7.0.x`): Bug fixes only. No new features or API changes.
- **Minor release branches** (e.g., `7.1.x`): New features are welcome, but breaking existing APIs must be avoided.
- **Major release branches** (e.g., `8.0.x`): Reserved for major changes. Breaking API changes are permitted.
### Code Quality
- [ ] I have **added or updated tests** that cover the changes introduced in this PR. All code contributions are expected to include appropriate test coverage.
- [ ] I have verified that all existing tests pass by running `./gradlew build --rerun-tasks`.
- [ ] My code follows the project's **code style** guidelines. I have run `./gradlew codeStyle` and resolved any violations. See [Code Style](../CONTRIBUTING.md#code-style) for details.
- [ ] This PR does **not** include mass reformatting, style-only changes, or large-scale refactoring unless it was **explicitly approved** in the linked issue. Unsolicited reformatting will not be accepted.
- [ ] If generative AI tooling was used in preparing this contribution, a quality model was used to ensure contributions are **consistent with the project's quality standards**.
### Licensing and Attribution
- [ ] All contributed code is provided under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), and new source files include the appropriate **Apache license header**.
- [ ] I have the necessary rights to submit this contribution and confirm it is my own original work (see [Legal Notice](../CONTRIBUTING.md#i-want-to-contribute)).
- [ ] If generative AI tooling was used in preparing this contribution, I have followed the [Apache Software Foundation's policy on generative tooling](https://www.apache.org/legal/generative-tooling.html) and have properly attributed its use.
### Documentation
- [ ] If this PR introduces user-facing changes, I have included or updated the relevant documentation.
- [ ] If this PR adds a new feature, I have updated the **What's New** section of the Grails Guide.
- [ ] If this PR introduces breaking changes or changes that require user action during an upgrade, I have updated the **Upgrade Notes** for the corresponding version in the Grails Guide.
- [ ] The PR description clearly explains **what** was changed and **why**.
---
> **First-time contributors:** Please read our [Contributing Guide](../CONTRIBUTING.md) before submitting.
> Pull requests that appear to be auto-generated, incomplete, or unrelated to an approved issue may be
> closed to help maintainers focus on reviewed and planned work. We appreciate your understanding.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4451926498
## 🚨 TestLens detected 1 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25866018965/job/76008824227?pr=15656) | :grails-test-examples-app3:integrationTest | LoadAfterSpec > Test override one plugin view from another plugin | ❌ |
🏷️ Commit: 68afa58b0b0f5896e35f0c1594817d8168c27411
▶️ Tests: 450 executed
🟡 Checks: 36/37 completed
### Test Failure
<details>
<summary><strong>LoadAfterSpec > Test override one plugin view from another plugin</strong> (:grails-test-examples-app3:integrationTest in <a href="https://github.com/apache/grails-core/actions/runs/25866018965/job/76008824227?pr=15656">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@6a3cb81c testClass = app3.LoadAfterSpec, locations = [], classes = [app3.Application], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true", "server.port=0"], contextCustomizers = [org.spockframework.spring.mock.SpockContextCustomizer@0, org.springframework.boot.web.server.context.SpringBootTestRandomPortContextCustomizer@196624bf, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@4792f119, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@43245559, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnn
otation@1dc22cce], resourceBasePath = "src/main/webapp", contextLoader = grails.boot.test.GrailsApplicationContextLoader, parent = null]
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:195)
at org.springframework.test.context.cache.DefaultContextCache.put(DefaultContextCache.java:214)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:160)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:128)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:156)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:111)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260)
at org.spockframework.spring.SpringTestContextManager.prepareTestInstance(SpringTestContextManager.java:56)
at org.spockframework.spring.SpringInterceptor.interceptInitializerMethod(SpringInterceptor.java:46)
at org.spockframework.runtime.extension.AbstractMethodInterceptor.intercept(AbstractMethodInterceptor.java:24)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:102)
at grails.plugin.geb.GrailsContainerGebExtension.visitSpec_closure4(GrailsContainerGebExtension.groovy:105)
at groovy.lang.Closure.call(Closure.java:433)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: groovy.lang.MissingMethodException: No signature of method: static grails.plugin.springsecurity.ReflectionUtils.getApplication() is applicable for argument types: () values: []
at grails.plugin.springsecurity.ReflectionUtils.getSecurityConfig(ReflectionUtils.groovy:119)
at grails.plugin.springsecurity.SpringSecurityUtils.reloadSecurityConfig(SpringSecurityUtils.groovy:271)
at grails.plugin.springsecurity.SpringSecurityUtils.getSecurityConfig(SpringSecurityUtils.groovy:240)
at grails.plugin.springsecurity.SpringSecurityCoreGrailsPlugin.doWithSpring_closure12(SpringSecurityCoreGrailsPlugin.groovy:177)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:537)
at org.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:398)
at org.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:174)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:198)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
at grails.boot.GrailsApp.run(GrailsApp.groovy:100)
at grails.boot.GrailsApp.run(GrailsApp.groovy:394)
at grails.boot.GrailsApp.run(GrailsApp.groovy:383)
at app3.Application.main(Application.groovy:27)
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$1(SpringBootContextLoader.java:148)
at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.lambda$runMain$0(SpringBootContextLoader.java:593)
at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)
at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)
at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1465)
at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:600)
at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.runMain(SpringBootContextLoader.java:592)
at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:143)
at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:114)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:247)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:167)
... 17 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 LoadAfterSpec > Test override one plugin view from another plugin <!-- uniqueId=[engine:spock]/[spec:app3.LoadAfterSpec]/[feature:$spock_feature_1_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4512571614
## 🚨 TestLens detected 12 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | AbstractGormApiRegistrySpec > test register and get | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistryConcurrencySpec > registry hot-paths perform without lock contention under high concurrency | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > findSingleTransactionManager returns null for non-transactional datastore | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > findSingleTransactionManager returns transaction manager for TransactionCapableDatastore | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > findTransactionManager returns transaction manager for entity | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > normalizeEntityKey properly normalizes class names | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > normalizeQualifier properly normalizes qualifiers | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > removeDatastore removes from all registries | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > removeDatastoreByType removes from type registry but keeps in allDatastores | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > removeDatastoreFromDiscovery removes from type registry and allDatastores | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > removeEntityDatastore removes datastore specifically for entity | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656) | :grails-datamapping-core:test | GormRegistrySpec > reset clears all registries | ❌ |
🏷️ Commit: 69693f5d14437996277ab14c0603bf1db509c927
▶️ Tests: 751 executed
🟡 Checks: 0/64 completed
### Test Failures (first 10 of 12)
<details>
<summary><strong>AbstractGormApiRegistrySpec > test register and get</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
testRegistry.size() == 1
| | |
| 2 false
<org.grails.datastore.gorm.AbstractGormApiRegistrySpec$TestGormApiRegistry@1cdb11ff qualifiedApi=null apis=[ :org.grails.datastore.gorm.AbstractGormApiRegistrySpec$DummyApi@208718b3, org.grails.datastore.gorm.AbstractGormApiRegistrySpec$TestEntity:org.grails.datastore.gorm.AbstractGormApiRegistrySpec$DummyApi@37f8a957] registry=org.grails.datastore.gorm.GormRegistry@73e802be>
at org.grails.datastore.gorm.AbstractGormApiRegistrySpec.test register and get(AbstractGormApiRegistrySpec.groovy:54)
```
|expected|actual|
|---|---|
|<s>1</s>|<b>2</b>|
</details>
<details>
<summary><strong>GormRegistryConcurrencySpec > registry hot-paths perform without lock contention under high concurrency</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
errorCount.get() == 0
| | |
10 10 false
at org.grails.datastore.gorm.GormRegistryConcurrencySpec.registry hot-paths perform without lock contention under high concurrency(GormRegistryConcurrencySpec.groovy:128)
```
|expected|actual|
|---|---|
|<s>0</s>|<b>10</b>|
</details>
<details>
<summary><strong>GormRegistrySpec > findSingleTransactionManager returns null for non-transactional datastore</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.initializeDatastore() is applicable for argument types: (jdk.proxy3.$Proxy84) values: [Mock for type 'Datastore' named 'datastore']
Possible solutions: initializeDatastore(java.lang.Object, java.lang.String)
at org.grails.datastore.gorm.GormRegistrySpec.findSingleTransactionManager returns null for non-transactional datastore(GormRegistrySpec.groovy:66)
```
</details>
<details>
<summary><strong>GormRegistrySpec > findSingleTransactionManager returns transaction manager for TransactionCapableDatastore</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.initializeDatastore() is applicable for argument types: (jdk.proxy3.$Proxy94) values: [Mock for type 'TransactionCapableDatastore' named 'datastore']
Possible solutions: initializeDatastore(java.lang.Object, java.lang.String)
at org.grails.datastore.gorm.GormRegistrySpec.findSingleTransactionManager returns transaction manager for TransactionCapableDatastore(GormRegistrySpec.groovy:81)
```
</details>
<details>
<summary><strong>GormRegistrySpec > findTransactionManager returns transaction manager for entity</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.initializeDatastore() is applicable for argument types: (jdk.proxy3.$Proxy94) values: [Mock for type 'TransactionCapableDatastore' named 'datastore']
Possible solutions: initializeDatastore(java.lang.Object, java.lang.String)
at org.grails.datastore.gorm.GormRegistrySpec.findTransactionManager returns transaction manager for entity(GormRegistrySpec.groovy:111)
```
</details>
<details>
<summary><strong>GormRegistrySpec > normalizeEntityKey properly normalizes class names</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition failed with Exception:
registry.normalizeEntityKey(TestEntity) == TestEntity.name
| | |
| | class org.grails.datastore.gorm.GormRegistrySpec$TestEntity
| groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.normalizeEntityKey() is applicable for argument types: (Class) values: [class org.grails.datastore.gorm.GormRegistrySpec$TestEntity]
| at org.grails.datastore.gorm.GormRegistrySpec.normalizeEntityKey properly normalizes class names(GormRegistrySpec.groovy:180)
<org.grails.datastore.gorm.GormRegistry@73e802be defaultApiFactory=org.grails.datastore.gorm.DefaultGormApiFactory@4eace98f apiResolver=org.grails.datastore.gorm.GormApiResolver@16d92d12 staticApiRegistry=org.grails.datastore.gorm.GormStaticApiRegistry@5f63bc34 instanceApiRegistry=org.grails.datastore.gorm.GormInstanceApiRegistry@680535b7 validationApiRegistry=org.grails.datastore.gorm.GormValidationApiRegistry@41cc59a9 datastoresByQualifier=[:] entityDatastores=[:] datastoresByType=[:] apiFactoriesByDatastoreType=[:] allDatastores=[]>
at org.grails.datastore.gorm.GormRegistrySpec.normalizeEntityKey properly normalizes class names(GormRegistrySpec.groovy:180)
Caused by: groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.normalizeEntityKey() is applicable for argument types: (Class) values: [class org.grails.datastore.gorm.GormRegistrySpec$TestEntity]
... 1 more
```
</details>
<details>
<summary><strong>GormRegistrySpec > normalizeQualifier properly normalizes qualifiers</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition failed with Exception:
registry.normalizeQualifier(null) == ConnectionSource.DEFAULT
| |
| groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.normalizeQualifier() is applicable for argument types: (null) values: [null]
| at org.grails.datastore.gorm.GormRegistrySpec.normalizeQualifier properly normalizes qualifiers(GormRegistrySpec.groovy:190)
<org.grails.datastore.gorm.GormRegistry@73e802be defaultApiFactory=org.grails.datastore.gorm.DefaultGormApiFactory@4eace98f apiResolver=org.grails.datastore.gorm.GormApiResolver@16d92d12 staticApiRegistry=org.grails.datastore.gorm.GormStaticApiRegistry@5f63bc34 instanceApiRegistry=org.grails.datastore.gorm.GormInstanceApiRegistry@680535b7 validationApiRegistry=org.grails.datastore.gorm.GormValidationApiRegistry@41cc59a9 datastoresByQualifier=[:] entityDatastores=[:] datastoresByType=[:] apiFactoriesByDatastoreType=[:] allDatastores=[]>
at org.grails.datastore.gorm.GormRegistrySpec.normalizeQualifier properly normalizes qualifiers(GormRegistrySpec.groovy:190)
Caused by: groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.normalizeQualifier() is applicable for argument types: (null) values: [null]
... 1 more
```
</details>
<details>
<summary><strong>GormRegistrySpec > removeDatastore removes from all registries</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.initializeDatastore() is applicable for argument types: (jdk.proxy3.$Proxy84) values: [Mock for type 'Datastore' named 'datastore']
Possible solutions: initializeDatastore(java.lang.Object, java.lang.String)
at org.grails.datastore.gorm.GormRegistrySpec.removeDatastore removes from all registries(GormRegistrySpec.groovy:167)
```
</details>
<details>
<summary><strong>GormRegistrySpec > removeDatastoreByType removes from type registry but keeps in allDatastores</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.initializeDatastore() is applicable for argument types: (jdk.proxy3.$Proxy84) values: [Mock for type 'Datastore' named 'datastore']
Possible solutions: initializeDatastore(java.lang.Object, java.lang.String)
at org.grails.datastore.gorm.GormRegistrySpec.removeDatastoreByType removes from type registry but keeps in allDatastores(GormRegistrySpec.groovy:139)
```
</details>
<details>
<summary><strong>GormRegistrySpec > removeDatastoreFromDiscovery removes from type registry and allDatastores</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26251026555/job/77261845812?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.datastore.gorm.GormRegistry.initializeDatastore() is applicable for argument types: (jdk.proxy3.$Proxy84) values: [Mock for type 'Datastore' named 'datastore']
Possible solutions: initializeDatastore(java.lang.Object, java.lang.String)
at org.grails.datastore.gorm.GormRegistrySpec.removeDatastoreFromDiscovery removes from type registry and allDatastores(GormRegistrySpec.groovy:153)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 AbstractGormApiRegistrySpec > test register and get <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.AbstractGormApiRegistrySpec]/[feature:$spock_feature_0_0] -->
🔲 GormRegistryConcurrencySpec > registry hot-paths perform without lock contention under high concurrency <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistryConcurrencySpec]/[feature:$spock_feature_0_0] -->
🔲 GormRegistrySpec > findSingleTransactionManager returns null for non-transactional datastore <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_1] -->
🔲 GormRegistrySpec > findSingleTransactionManager returns transaction manager for TransactionCapableDatastore <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_2] -->
🔲 GormRegistrySpec > findTransactionManager returns transaction manager for entity <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_4] -->
🔲 GormRegistrySpec > normalizeEntityKey properly normalizes class names <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_9] -->
🔲 GormRegistrySpec > normalizeQualifier properly normalizes qualifiers <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_10] -->
🔲 GormRegistrySpec > removeDatastore removes from all registries <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_8] -->
🔲 GormRegistrySpec > removeDatastoreByType removes from type registry but keeps in allDatastores <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_6] -->
🔲 GormRegistrySpec > removeDatastoreFromDiscovery removes from type registry and allDatastores <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_7] -->
🔲 GormRegistrySpec > removeEntityDatastore removes datastore specifically for entity <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_5] -->
🔲 GormRegistrySpec > reset clears all registries <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormRegistrySpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "jdaugherty (via GitHub)" <gi...@apache.org>.
jdaugherty commented on code in PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#discussion_r3237388620
##########
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormEnhancer.groovy:
##########
@@ -16,84 +16,184 @@
* specific language governing permissions and limitations
* under the License.
*/
-/* Copyright (C) 2011 SpringSource
Review Comment:
This looks like copied code, why was a springsource header here? Should this be in teh spring-orm library?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid commented on code in PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#discussion_r3277305712
##########
grails-console/build.gradle:
##########
@@ -44,7 +44,7 @@ dependencies {
implementation 'org.fusesource.jansi:jansi'
implementation 'org.jline:jline'
// TODO: Remove jline:jline (JLine 2) when upgrading to Groovy 5 (groovy-groovysh 5.x uses JLine 3)
- implementation 'jline:jline'
+ implementation 'jline:jline:2.14.6'
Review Comment:
removed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4452396678
## 🚨 TestLens detected 9 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name > input for a many-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name > input for a one-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property doesn\'t have \`.id\` at the end of the name > input for a many-to-many property doesn\'t have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a many-to-many property is a select | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a many-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a one-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected > select for a many-to-many property with a value of [Homer Simpson] has the correct option selected | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected > select for a many-to-one property with a value of Homer Simpson has the correct option selected | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656) | :grails-fields:test | DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected > select for a one-to-one property with a value of Homer Simpson has the correct option selected | ❌ |
🏷️ Commit: 88174efd9e098189b279946975d0f7b9693e3107
▶️ Tests: 1298 executed
🟡 Checks: 10/33 completed
### Test Failures (first 5 of 9)
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656">CI / Build Grails-Core (ubuntu-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:485)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656">CI / Build Grails-Core (ubuntu-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:485)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property doesn't have `.id` at the end of the name > input for a many-to-many property doesn't have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656">CI / Build Grails-Core (ubuntu-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property doesn't have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:466)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656">CI / Build Grails-Core (ubuntu-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/25869799970/job/76022592140?pr=15656">CI / Build Grails-Core (ubuntu-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_23] -->
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property doesn\'t have \`.id\` at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_22] -->
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property is a select <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_21] -->
🔲 DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_25] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid commented on code in PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#discussion_r3277307257
##########
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormEnhancer.groovy:
##########
@@ -16,84 +16,184 @@
* specific language governing permissions and limitations
* under the License.
*/
-/* Copyright (C) 2011 SpringSource
Review Comment:
ASF Header
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4500710367
## 🚨 TestLens detected 12 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
🏷️ Commit: 2f7b39623cbed3f044ae39f24531083176ffba59
▶️ Tests: 1048 executed
🟡 Checks: 3/33 completed
### Test Failures (first 5 of 12)
<details>
<summary><strong>CacheTagLibSpec</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1443)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:244)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:114)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.spock.WebSetupSpecInterceptor.setup(WebSetupSpecInterceptor.groovy:73)
at org.grails.testing.spock.WebSetupSpecInterceptor.intercept(WebSetupSpecInterceptor.groovy:66)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
```
</details>
<details>
<summary><strong>CacheableParseSpec > test include tenant id when used with @CurrentTenant and @Transactional</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
java.lang.IllegalStateException: No GORM implementations configured. Ensure GORM has been initialized correctly
at org.grails.datastore.gorm.GormRegistry.findSingleTransactionManager(GormRegistry.groovy:189)
at TestService.multiply_closure1(Script1.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.multitenancy.Tenants.executeCallable(Tenants.groovy:320)
at grails.gorm.multitenancy.Tenants.withId_closure4(Tenants.groovy:299)
at grails.gorm.multitenancy.CurrentTenantHolder.withTenant(CurrentTenantHolder.groovy:90)
at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:298)
at org.grails.datastore.gorm.services.DefaultTenantService.withCurrent(DefaultTenantService.groovy:94)
at grails.plugin.cache.CacheableParseSpec.test include tenant id when used with @CurrentTenant and @Transactional(CacheableParseSpec.groovy:140)
```
</details>
<details>
<summary><strong>DomainClassMarshallerSpec > Test DomainClassMarshaller's should maintain order of relations > Test DomainClassMarshaller's should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: {'id':1,'authorsSet': [{'id':1,'name': 'a'},{'id':2,'name': 'b'}],'authorsMap': {'a':{'id':1,'name': 'a'},'b': {'id':2,'name': 'b'}}}, expectedXml: <?xml version='1.0' encoding='UTF-8'?><book id='1'><authorsSet><author id='1'><name>a</name></author><author id='2'><name>b</name></author></authorsSet><authorsMap><…</strong> (:grails-converters:test in <a href="https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
json.toString() == expectedJson
| | | |
| | | {'id':1,'authorsSet': [{'id':1,'name': 'a'},{'id':2,'name': 'b'}],'authorsMap': {'a':{'id':1,'name': 'a'},'b': {'id':2,'name': 'b'}}}
| | false
| | 41 differences (69% similarity)
| | {(")id("):1,(")authorsSet("):(-)[{(")id("):1,(")name("):("-)a(")},{(")id("):2,(")name("):("-)b(")}],(")authorsMap("):(-){(")a("):{(")id("):1,(")name("):("-)a(")},(")b("):(-){(")id("):2,(")name("):("-)b(")}}}
| | {(')id('):1,(')authorsSet('):( )[{(')id('):1,(')name('):( ')a(')},{(')id('):2,(')name('):( ')b(')}],(')authorsMap('):( ){(')a('):{(')id('):1,(')name('):( ')a(')},(')b('):( ){(')id('):2,(')name('):( ')b(')}}}
| {"id":1,"authorsSet":[{"id":1,"name":"a"},{"id":2,"name":"b"}],"authorsMap":{"a":{"id":1,"name":"a"},"b":{"id":2,"name":"b"}}}
{"id":1,"authorsSet":[{"id":1,"name":"a"},{"id":2,"name":"b"}],"authorsMap":{"a":{"id":1,"name":"a"},"b":{"id":2,"name":"b"}}}
at org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec.Test DomainClassMarshaller's should maintain order of relations(DomainClassMarshallerSpec.groovy:80)
```
|expected|actual|
|---|---|
|<s>{'id':</s>1<s>,'authorsSet': [{'id':</s>1<s>,'name': 'a'},{'id':</s>2<s>,'name': 'b'}],'authorsMap': {'a':{'id':</s>1<s>,'name': 'a'},'b': {'id':</s>2<s>,'name': 'b'}}}</s>|<b>{"id":</b>1<b>,"authorsSet":[{"id":</b>1<b>,"name":"a"},{"id":</b>2<b>,"name":"b"}],"authorsMap":{"a":{"id":</b>1<b>,"name":"a"},"b":{"id":</b>2<b>,"name":"b"}}}</b>|
</details>
<details>
<summary><strong>DomainClassMarshallerSpec > Test DomainClassMarshaller's should maintain order of relations > Test DomainClassMarshaller's should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: {'id':1,'authorsSet': [{'id':1,'name': 'b'},{'id':2,'name': 'a'}],'authorsMap': {'b':{'id':1,'name': 'b'},'a': {'id':2,'name': 'a'}}}, expectedXml: <?xml version='1.0' encoding='UTF-8'?><book id='1'><authorsSet><author id='1'><name>b</name></author><author id='2'><name>a</name></author></authorsSet><authorsMap><…</strong> (:grails-converters:test in <a href="https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
json.toString() == expectedJson
| | | |
| | | {'id':1,'authorsSet': [{'id':1,'name': 'b'},{'id':2,'name': 'a'}],'authorsMap': {'b':{'id':1,'name': 'b'},'a': {'id':2,'name': 'a'}}}
| | false
| | 41 differences (69% similarity)
| | {(")id("):1,(")authorsSet("):(-)[{(")id("):1,(")name("):("-)b(")},{(")id("):2,(")name("):("-)a(")}],(")authorsMap("):(-){(")b("):{(")id("):1,(")name("):("-)b(")},(")a("):(-){(")id("):2,(")name("):("-)a(")}}}
| | {(')id('):1,(')authorsSet('):( )[{(')id('):1,(')name('):( ')b(')},{(')id('):2,(')name('):( ')a(')}],(')authorsMap('):( ){(')b('):{(')id('):1,(')name('):( ')b(')},(')a('):( ){(')id('):2,(')name('):( ')a(')}}}
| {"id":1,"authorsSet":[{"id":1,"name":"b"},{"id":2,"name":"a"}],"authorsMap":{"b":{"id":1,"name":"b"},"a":{"id":2,"name":"a"}}}
{"id":1,"authorsSet":[{"id":1,"name":"b"},{"id":2,"name":"a"}],"authorsMap":{"b":{"id":1,"name":"b"},"a":{"id":2,"name":"a"}}}
at org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec.Test DomainClassMarshaller's should maintain order of relations(DomainClassMarshallerSpec.groovy:80)
```
|expected|actual|
|---|---|
|<s>{'id':</s>1<s>,'authorsSet': [{'id':</s>1<s>,'name': 'b'},{'id':</s>2<s>,'name': 'a'}],'authorsMap': {'b':{'id':</s>1<s>,'name': 'b'},'a': {'id':</s>2<s>,'name': 'a'}}}</s>|<b>{"id":</b>1<b>,"authorsSet":[{"id":</b>1<b>,"name":"b"},{"id":</b>2<b>,"name":"a"}],"authorsMap":{"b":{"id":</b>1<b>,"name":"b"},"a":{"id":</b>2<b>,"name":"a"}}}</b>|
</details>
<details>
<summary><strong>DomainClassMarshallerSpec > test marshaller should render the ID properly</strong> (:grails-converters:test in <a href="https://github.com/apache/grails-core/actions/runs/26176946144/job/77009407709?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition failed with Exception:
jsonString.contains(''newId':3')
| |
| groovy.lang.MissingPropertyException: No such property: newId for class: org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec
| at org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec.test marshaller should render the ID properly(DomainClassMarshallerSpec.groovy:96)
{"newId":3,"name":"Sally","version":null}
at org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec.test marshaller should render the ID properly(DomainClassMarshallerSpec.groovy:96)
Caused by: groovy.lang.MissingPropertyException: No such property: newId for class: org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec
... 1 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 CacheTagLibSpec <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheTagLibSpec] -->
🔲 CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheableParseSpec]/[feature:$spock_feature_0_2] -->
🔲 DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_0] -->
🔲 DomainClassMarshallerSpec > test marshaller should render the ID properly <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_1] -->
🔲 DomainClassMarshallerSpec > test marshallers generate class names when options are set <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_2] -->
🔲 PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.core.plugins.PluginDiscoverySpec]/[feature:$spock_feature_0_11] -->
🔲 StackTracePrinterSpec > Test pretty print code snippet <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_3] -->
🔲 StackTracePrinterSpec > Test pretty print nested exception code snippet <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_4] -->
🔲 StackTracePrinterSpec > Test pretty print simple stack trace <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_0] -->
🔲 StaticPropertySpec > static property should be excluded <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.StaticPropertySpec]/[feature:$spock_feature_0_0] -->
🔲 ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.ValidationErrorsMarshallerSpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4524002839
Superseded by #15678. This branch was rebuilt from scratch on `8.0.x-hibernate7.gorm-scaling-clean` to remove a corruption commit from the history. All changes, plus fixes for multi-tenancy resolution regressions and test isolation, are in the new PR.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4447121515
## 🚨 TestLens detected 2 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25839088267/job/75920602310?pr=15656) | :grails-data-hibernate5-dbmigration:test | GroovyChangeLogSpec > outputs a warning message by calling the warn method | ❌ |
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25839088267/job/75920602310?pr=15656) | :grails-data-hibernate5-dbmigration:test | GroovyChangeLogSpec > updates a database with Groovy Change | ❌ |
🏷️ Commit: 883906a7f9acbbe76974d951dca82f89dba01076
▶️ Tests: 1047 executed
🟡 Checks: 31/35 completed
### Test Failures
<details>
<summary><strong>GroovyChangeLogSpec > outputs a warning message by calling the warn method</strong> (:grails-data-hibernate5-dbmigration:test in <a href="https://github.com/apache/grails-core/actions/runs/25839088267/job/75920602310?pr=15656">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition not satisfied:
output.toString().contains('warn message')
| | |
| | false
| 03:13:17.413 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
| Running Changeset: changelog.groovy::2::John Smith
|
| UPDATE SUMMARY
| Run: 1
| Previously run: 0
| Filtered out: 0
| -------------------------------
| Total change sets: 1
|
| Liquibase: Update has been successful. Rows affected: 1
03:13:17.413 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Running Changeset: changelog.groovy::2::John Smith
UPDATE SUMMARY
Run: 1
Previously run: 0
Filtered out: 0
-------------------------------
Total change sets: 1
Liquibase: Update has been successful. Rows affected: 1
at org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec.outputs a warning message by calling the warn method(GroovyChangeLogSpec.groovy:87)
```
</details>
<details>
<summary><strong>GroovyChangeLogSpec > updates a database with Groovy Change</strong> (:grails-data-hibernate5-dbmigration:test in <a href="https://github.com/apache/grails-core/actions/runs/25839088267/job/75920602310?pr=15656">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition not satisfied:
output.toString().contains('confirmation message')
| | |
| | false
| 03:13:16.673 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
| Running Changeset: changelog.groovy::1::John Smith
|
| UPDATE SUMMARY
| Run: 1
| Previously run: 0
| Filtered out: 0
| -------------------------------
| Total change sets: 1
|
| Liquibase: Update has been successful. Rows affected: 1
03:13:16.673 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Running Changeset: changelog.groovy::1::John Smith
UPDATE SUMMARY
Run: 1
Previously run: 0
Filtered out: 0
-------------------------------
Total change sets: 1
Liquibase: Update has been successful. Rows affected: 1
at org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec.updates a database with Groovy Change(GroovyChangeLogSpec.groovy:61)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 GroovyChangeLogSpec > outputs a warning message by calling the warn method <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec]/[feature:$spock_feature_2_1] -->
🔲 GroovyChangeLogSpec > updates a database with Groovy Change <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec]/[feature:$spock_feature_2_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4445610288
## 🚨 TestLens detected 2 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25828286382/job/75889788400?pr=15656) | :grails-data-hibernate5-dbmigration:test | GroovyChangeLogSpec > outputs a warning message by calling the warn method | ❌ |
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25828286382/job/75889788400?pr=15656) | :grails-data-hibernate5-dbmigration:test | GroovyChangeLogSpec > updates a database with Groovy Change | ❌ |
🏷️ Commit: 4f157e320902cce3b4d58e23d4f9784f94d15950
▶️ Tests: 922 executed
🟡 Checks: 70/71 completed
### Test Failures
<details>
<summary><strong>GroovyChangeLogSpec > outputs a warning message by calling the warn method</strong> (:grails-data-hibernate5-dbmigration:test in <a href="https://github.com/apache/grails-core/actions/runs/25828286382/job/75889788400?pr=15656">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition not satisfied:
output.toString().contains('warn message')
| | |
| | false
| 22:13:52.176 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
| Running Changeset: changelog.groovy::2::John Smith
|
| UPDATE SUMMARY
| Run: 1
| Previously run: 0
| Filtered out: 0
| -------------------------------
| Total change sets: 1
|
| Liquibase: Update has been successful. Rows affected: 1
22:13:52.176 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Running Changeset: changelog.groovy::2::John Smith
UPDATE SUMMARY
Run: 1
Previously run: 0
Filtered out: 0
-------------------------------
Total change sets: 1
Liquibase: Update has been successful. Rows affected: 1
at org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec.outputs a warning message by calling the warn method(GroovyChangeLogSpec.groovy:87)
```
</details>
<details>
<summary><strong>GroovyChangeLogSpec > updates a database with Groovy Change</strong> (:grails-data-hibernate5-dbmigration:test in <a href="https://github.com/apache/grails-core/actions/runs/25828286382/job/75889788400?pr=15656">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition not satisfied:
output.toString().contains('confirmation message')
| | |
| | false
| 22:13:51.602 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
| Running Changeset: changelog.groovy::1::John Smith
|
| UPDATE SUMMARY
| Run: 1
| Previously run: 0
| Filtered out: 0
| -------------------------------
| Total change sets: 1
|
| Liquibase: Update has been successful. Rows affected: 1
22:13:51.602 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Running Changeset: changelog.groovy::1::John Smith
UPDATE SUMMARY
Run: 1
Previously run: 0
Filtered out: 0
-------------------------------
Total change sets: 1
Liquibase: Update has been successful. Rows affected: 1
at org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec.updates a database with Groovy Change(GroovyChangeLogSpec.groovy:61)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 GroovyChangeLogSpec > outputs a warning message by calling the warn method <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec]/[feature:$spock_feature_2_1] -->
🔲 GroovyChangeLogSpec > updates a database with Groovy Change <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec]/[feature:$spock_feature_2_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4502342843
## 🚨 TestLens detected 35 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with \@Order | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using \@Order | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test that grailsWebDataBinder exists | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850073?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
🏷️ Commit: a4403eb92e8e008f9e51f8d0143cd59f6654300e
▶️ Tests: 1594 executed
🟡 Checks: 0/33 completed
### Test Failures (first 5 of 35)
<details>
<summary><strong>CacheTagLibSpec</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1443)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:244)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:114)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.spock.WebSetupSpecInterceptor.setup(WebSetupSpecInterceptor.groovy:73)
at org.grails.testing.spock.WebSetupSpecInterceptor.intercept(WebSetupSpecInterceptor.groovy:66)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
```
</details>
<details>
<summary><strong>CacheableParseSpec > test include tenant id when used with @CurrentTenant and @Transactional</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
java.lang.IllegalStateException: No GORM implementations configured. Ensure GORM has been initialized correctly
at org.grails.datastore.gorm.GormRegistry.findSingleTransactionManager(GormRegistry.groovy:189)
at TestService.multiply_closure1(Script1.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.multitenancy.Tenants.executeCallable(Tenants.groovy:320)
at grails.gorm.multitenancy.Tenants.withId_closure4(Tenants.groovy:299)
at grails.gorm.multitenancy.CurrentTenantHolder.withTenant(CurrentTenantHolder.groovy:90)
at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:298)
at org.grails.datastore.gorm.services.DefaultTenantService.withCurrent(DefaultTenantService.groovy:94)
at grails.plugin.cache.CacheableParseSpec.test include tenant id when used with @CurrentTenant and @Transactional(CacheableParseSpec.groovy:140)
```
</details>
<details>
<summary><strong>ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties</strong> (:grails-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition failed with Exception:
otherSection.contains('[cols='2,3', options='header']')
| |
| groovy.lang.MissingMethodException: No signature of method: grails.dev.commands.ConfigReportCommandSpec.[cols=() is applicable for argument types: (Integer, Integer) values: [2, 3]
| Possible solutions: Mock()
| at grails.dev.commands.ConfigReportCommandSpec.writeReport puts only unknown runtime properties in Other Properties(ConfigReportCommandSpec.groovy:326)
== Other Properties
[cols='2,3', options='header']
|===
| Property | Default
| `custom.app.setting`
| `myvalue`
|===
at grails.dev.commands.ConfigReportCommandSpec.writeReport puts only unknown runtime properties in Other Properties(ConfigReportCommandSpec.groovy:326)
Caused by: groovy.lang.MissingMethodException: No signature of method: grails.dev.commands.ConfigReportCommandSpec.[cols=() is applicable for argument types: (Integer, Integer) values: [2, 3]
Possible solutions: Mock()
... 1 more
```
</details>
<details>
<summary><strong>ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories</strong> (:grails-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition failed with Exception:
content.contains('[cols='2,5,2', options='header']')
| |
| groovy.lang.MissingMethodException: No signature of method: grails.dev.commands.ConfigReportCommandSpec.[cols=() is applicable for argument types: (Integer, Integer, Integer) values: [2, 5, 2]
| Possible solutions: Mock()
| at grails.dev.commands.ConfigReportCommandSpec.writeReport uses 3-column format with metadata categories(ConfigReportCommandSpec.groovy:213)
= Grails Application Configuration Report
:toc: left
:toclevels: 2
:source-highlighter: coderay
== DataSource
[cols='2,5,2', options='header']
|===
| Property | Description | Default
| `dataSource.dbCreate`
| The schema generation strategy: create-drop, create, update, validate, or none, use none in production with a migration tool.
| create-drop (dev), none (prod)
| `dataSource.dialect`
| The Hibernate dialect class name or class.
| auto-detected from driver
| `dataSource.driverClassName`
| The JDBC driver class name.
| org.h2.Driver
| `dataSource.formatSql`
| Whether to format logged SQL for readability.
| false
| `dataSource.jmxExport`
| Whether to register JMX MBeans for the DataSource.
| true
| `dataSource.logSql`
| Whether to log SQL statements to stdout.
| false
| `dataSource.password`
| The database password.
|
| `dataSource.persistenceInterceptor`
| For additional datasources, whether to wire up the persistence interceptor (the default datasource is always wired).
| false
| `dataSource.pooled`
| Whether to use a connection pool.
| true
| `dataSource.readOnly`
| Whether the DataSource is read-only (calls setReadOnly(true) on connections).
| false
| `dataSource.transactional`
| For additional datasources, whether to include in the chained transaction manager.
| true
| `dataSource.type`
| The connection pool implementation class when multiple are on the classpath.
| com.zaxxer.hikari.HikariDataSource
| `dataSource.url`
| The JDBC connection URL.
| jdbc:h2:mem:devDb
| `dataSource.username`
| The database username.
| sa
|===
== Core Properties
[cols='2,5,2', options='header']
|===
| Property | Description | Default
| `grails.bootstrap.skip`
| Whether to skip execution of BootStrap.groovy classes on startup.
| false
| `grails.codegen.defaultPackage`
| The default package used when generating artefacts with grails create-* commands.
| Set by project template
| `grails.enable.native2ascii`
| Whether to perform native2ascii conversion of i18n properties files.
| true
| `grails.plugin.excludes`
| List of plugin names to exclude from the plugin manager.
| []
| `grails.plugin.includes`
| List of plugin names to include in the plugin manager (all others excluded).
| []
| `grails.profile`
| The active Grails application profile (e.g., web, rest-api, plugin).
| `web`
| `grails.serverURL`
| The server URL used to generate absolute links (e.g., https://my.app.com) and used by redirects.
| derived from request
| `grails.spring.bean.packages`
| List of packages to scan for Spring beans.
| []
| `grails.spring.disable.aspectj.autoweaving`
| Whether to disable AspectJ auto-weaving.
| false
| `grails.spring.placeholder.prefix`
| The prefix for property placeholder resolution.
| ${
| `grails.spring.transactionManagement.proxies`
| Whether to enable Spring proxy-based transaction management since @Transactional uses an AST transform and proxies are typically redundant.
| false
|===
== JSON & Converters
[cols='2,5,2', options='header']
|===
| Property | Description | Default
| `grails.converters.json.domain.include.class`
| Whether to include the class property when marshalling domain objects to JSON.
| false
| `grails.converters.xml.domain.include.class`
| Whether to include the class attribute when marshalling domain objects to XML.
| false
| `grails.json.legacy.builder`
| Whether to use the legacy JSON builder.
| false
|===
== Events
[cols='2,5,2', options='header']
|===
| Property | Description | Default
| `grails.events.spring`
| Whether to bridge GORM/Grails events to the Spring ApplicationEventPublisher, allowing EventListener methods to receive domain events.
| true
|===
== GORM
[cols='2,5,2', options='header']
|===
| Property | Description | Default
| `grails.gorm.autoFlush`
| Whether to automatically flush the Hibernate session between queries.
| `true`
| `grails.gorm.autowire`
| Whether to autowire Spring beans into domain class instances.
| true
| `grails.gorm.custom.types`
| Map of custom GORM types.
| {}
| `grails.gorm.default.constraints`
| A closure applied as the default constraints for all domain classes.
| {}
| `grails.gorm.default.mapping`
| A closure applied as the default mapping block for all domain classes.
| {}
| `grails.gorm.events.autoTimestampInsertOverwrite`
| Whether auto-timestamp (dateCreated) overwrites a user-provided value on insert.
| true
| `grails.gorm.failOnError`
| When true, save() throws ValidationException on validation failure instead of returning null and can also be a list of package names to apply selectively.
| false
| `grails.gorm.flushMode`
| The default Hibernate flush mode (AUTO, COMMIT, MANUAL).
| AUTO
| `grails.gorm.markDirty`
| Whether to mark a domain instance as dirty on an explicit save() call.
| true
| `grails.gorm.multiTenancy.mode`
| The multi-tenancy mode: DISCRIMINATOR, DATABASE, SCHEMA, or NONE.
| NONE
| `grails.gorm.multiTenancy.tenantResolverClass`
| Fully qualified class name of the TenantResolver implementation.
| required when mode is not NONE
| `grails.gorm.reactor.events`
| Whether to translate GORM events into Reactor events, which is disabled by default for performance.
| false
|===
== Internationalization
[cols='2,5,2', options='header']
|===
| Property | Description | Default
| `grails.i18n.cache.seconds`
| How long (in seconds) to cache resolved message bundles with -1 to cache indefinitely and 0 to disable caching.
| -1
| `grails.i18n.filecache.seconds`
| How long (in seconds) to cache the message bundle file lookup with -1 to cache indefinitely.
| -1
|===
== Development & Reloading
[cols='2,5,2', options='header']
|===
| Property | Description | Default
| `grails.reload.excludes`
| List of fully qualified class names to exclude from development reloading.
| []
| `grails.reload.includes`
| List of fully qualified class names to include in development reloading, when set only these classes are reloaded.
| []
|===
== Other Properties
[cols='2,3', options='header']
|===
| Property | Default
| `server.port`
| `8080`
|===
at grails.dev.commands.ConfigReportCommandSpec.writeReport uses 3-column format with metadata categories(ConfigReportCommandSpec.groovy:213)
Caused by: groovy.lang.MissingMethodException: No signature of method: grails.dev.commands.ConfigReportCommandSpec.[cols=() is applicable for argument types: (Integer, Integer, Integer) values: [2, 5, 2]
Possible solutions: Mock()
... 1 more
```
</details>
<details>
<summary><strong>DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with @Order</strong> (:grails-databinding:test in <a href="https://github.com/apache/grails-core/actions/runs/26187201167/job/77045850168?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1443)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:244)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:114)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.GrailsUnitTest$Trait$Helper.defineBeans(GrailsUnitTest.groovy:102)
at org.grails.plugins.databinding.DataBindingConfigurationSpec.setup(DataBindingConfigurationSpec.groovy:37)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 CacheTagLibSpec <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheTagLibSpec] -->
🔲 CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheableParseSpec]/[feature:$spock_feature_0_2] -->
🔲 ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties <!-- uniqueId=[engine:spock]/[spec:grails.dev.commands.ConfigReportCommandSpec]/[feature:$spock_feature_0_13] -->
🔲 ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories <!-- uniqueId=[engine:spock]/[spec:grails.dev.commands.ConfigReportCommandSpec]/[feature:$spock_feature_0_8] -->
🔲 DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with \@Order <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_1] -->
🔲 DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using \@Order <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_2] -->
🔲 DataBindingConfigurationSpec > test that grailsWebDataBinder exists <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_0] -->
🔲 DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_0] -->
🔲 DomainClassMarshallerSpec > test marshaller should render the ID properly <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_1] -->
🔲 DomainClassMarshallerSpec > test marshallers generate class names when options are set <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_2] -->
🔲 PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.core.plugins.PluginDiscoverySpec]/[feature:$spock_feature_0_11] -->
🔲 StackTraceFiltererSpec > Test basic filter <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTraceFiltererSpec]/[feature:$spock_feature_0_0] -->
🔲 StackTraceFiltererSpec > Test deep filter <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTraceFiltererSpec]/[feature:$spock_feature_0_1] -->
🔲 StackTracePrinterSpec > Test pretty print code snippet <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_3] -->
🔲 StackTracePrinterSpec > Test pretty print nested exception code snippet <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_4] -->
🔲 StackTracePrinterSpec > Test pretty print simple stack trace <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_0] -->
🔲 StaticPropertySpec > static property should be excluded <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.StaticPropertySpec]/[feature:$spock_feature_0_0] -->
🔲 ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.ValidationErrorsMarshallerSpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4469199977
## 🚨 TestLens detected 132 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25979941284/job/76366929394?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with \@Order | ❌ |
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25979941284/job/76366929394?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using \@Order | ❌ |
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25979941284/job/76366929394?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test that grailsWebDataBinder exists | ❌ |
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25979941284/job/76366929394?pr=15656) | :grails-data-hibernate7-core:test | DirtyCheckingAfterListenerSpec > test state change from listener update the object | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: false, \#1] | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: true, \#0] | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: false, \#0] | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: true, \#1] | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support typed variables in both compilation modes > should support typed variables in both compilation modes [compileStatic: false, \#1] | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support typed variables in both compilation modes > should support typed variables in both compilation modes [compileStatic: true, \#0] | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > specifying model implies compileStatic mode | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-datastore-core:test | GormMappingConfigurationStrategySpec > test getPersistentProperties with basic properties and transients | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: false, \#1] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: true, \#0] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: false, \#0] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: true, \#1] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support typed variables in both compilation modes > should support typed variables in both compilation modes [compileStatic: false, \#1] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support typed variables in both compilation modes > should support typed variables in both compilation modes [compileStatic: true, \#0] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740528?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > specifying model implies compileStatic mode | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740558?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: false, \#1] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740558?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: true, \#0] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740558?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: false, \#0] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740558?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: true, \#1] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740558?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support typed variables in both compilation modes > should support typed variables in both compilation modes [compileStatic: false, \#1] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740558?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > should support typed variables in both compilation modes > should support typed variables in both compilation modes [compileStatic: true, \#0] | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740558?pr=15656) | :grails-gsp-core:test | GspCompileStaticSpec > specifying model implies compileStatic mode | ❌ |
| [CI / Build Grails-Core Rerunning all Tasks \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740511?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with \@Order | ❌ |
| [CI / Build Grails-Core Rerunning all Tasks \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740511?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using \@Order | ❌ |
| [CI / Build Grails-Core Rerunning all Tasks \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740511?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test that grailsWebDataBinder exists | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > getting configuration from environment specific location | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class and environment block, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class that has a canonical config, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class that has a two levels of canonical config, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with configs does not exist, noting changes | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath > when getting groovy config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath > when getting properties config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath > when getting yml config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in specific folder | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in system property user.home | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in user.home | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with wildcard files from tmp | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config without grails.config.location set, the config does not change | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath > when getting referenced groovy config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath > when getting referenced properties config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath > when getting referenced yml config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting yml config with file in classpath and with environments block | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-gsp-layout:test | FlashMessagesTagLibSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-test-phases:test | GreetingServiceSpec > test greeting returns expected message | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-test-phases:test | GreetingServiceSpec > test greeting with empty name | ❌ |
| [CI / Functional Tests \(Java 21, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740494?pr=15656) | :grails-test-examples-views-functional-tests:test | JsonViewUnitTestSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test List results are cached | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test Map results are cached | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test Map results are cached correctly | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test custom key closure creates separate cache entries | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test custom key eviction | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test different List parameters have separate cache entries | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test different inputs have separate cache entries even with exceptions | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test evicting one key does not affect other keys | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test eviction clears collection caches | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test eviction clears map cache | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test eviction clears null cache | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test exceptions are not cached | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test non-null values are cached normally | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test null values are cached by default | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | AdvancedCachingServiceSpec > test successful results are cached even after exceptions | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | ApplyTemplateWithoutReferringToTagLibPropertySpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | AutowiredTestSpec > some other test method | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | AutowiredTestSpec > some test method | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | BasicCachingServiceNoCacheManagerSpec > test invoking cacheable method when no cache manager is present | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | BasicCachingServiceSpec > test invoking a cacheable method that expresses a condition | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | BasicCachingServiceSpec > test invoking cacheable method when cache manager is present | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | CarServiceSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | CarSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-cache:test | ClassMarkedCacheableSpec > test that expected methods have been configured as cacheable | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | ConfigServiceSpec > singup is allowed if configuration parameter is set | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | ControllerTagLibMethodDispatchSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-demo33:test | DataTestTraitSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > getting configuration from environment specific location | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > getting configuration from yml with multiple documents | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class and environment block, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class that has a canonical config, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class that has a two levels of canonical config, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with config class, expect the config to be loaded | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with configs does not exist, noting changes | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath > when getting groovy config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath > when getting properties config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in classpath > when getting yml config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in specific folder | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in system property user.home | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with file in user.home | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with wildcard files from tmp | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config with wildcard files from user home | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting config without grails.config.location set, the config does not change | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath > when getting referenced groovy config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath > when getting referenced properties config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting referenced config with file in classpath > when getting referenced yml config with file in classpath | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | ExternalConfigSpec > when getting yml config with file in classpath and with environments block | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-gsp-layout:test | FlashMessagesTagLibSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-test-phases:test | GreetingServiceSpec > test greeting returns expected message | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-test-phases:test | GreetingServiceSpec > test greeting with empty name | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-views-functional-tests:test | JsonViewUnitTestSpec | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | MergedConfigSpec > when merging multiple configs the expected values are in the final result | ❌ |
| [CI / Functional Tests \(Java 21, indy\=true\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740493?pr=15656) | :grails-test-examples-external-configuration:test | MergedConfigSpec > when merging multiple groovy configs the expected values are in the final result | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-config-report:integrationTest | ConfigReportCommandIntegrationSpec > ConfigReportCommand generates a report file with hybrid format | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-config-report:integrationTest | ConfigReportCommandIntegrationSpec > report contains properties from all three config sources | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | CrossDatasourceTransactionSpec > chained transaction manager coordinates transactions across datasources | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | CrossDatasourceTransactionSpec > count operations are datasource-specific | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | CrossDatasourceTransactionSpec > error in primary datasource does not affect already-committed secondary | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | CrossDatasourceTransactionSpec > nested transactions work correctly | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | CrossDatasourceTransactionSpec > operations on both datasources within single test method | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | CrossDatasourceTransactionSpec > read-only transactions work correctly | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > CRUD operations work independently on each datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > batch insert works on each datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > bulk delete works on each datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > count operations work correctly on each datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > createCriteria routes to secondary datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > data in primary datasource is isolated from secondary | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > dynamic finders work on each datasource independently | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > executeQuery routes to secondary datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > findAll with criteria works on each datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > same entity name in different packages uses different datasources | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > secondary namespace API provides access to secondary datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > transactions are independent between datasources | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > where queries work on each datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-datasources:integrationTest | DatasourceSwitchingSpec > withCriteria routes to secondary datasource | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-test-phases:test | GreetingServiceSpec > test greeting returns expected message | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740505?pr=15656) | :grails-test-examples-test-phases:test | GreetingServiceSpec > test greeting with empty name | ❌ |
🏷️ Commit: 052293a95ab430ee2a2e75dc1255a304b487acc5
▶️ Tests: 3596 executed
🟡 Checks: 21/33 completed
### Test Failures (first 5 of 132)
<details>
<summary><strong>GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: false, #1]</strong> (:grails-gsp-core:test in <a href="https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.grails.taglib.GrailsTagException: [Byte array resource [template-381265712]:1] Attribute value quote wasn't closed (var='date' in='${dates}").
at org.grails.gsp.compiler.GroovyPageParser.populateMapWithAttributes(GroovyPageParser.java:1260)
at org.grails.gsp.compiler.GroovyPageParser.startTag(GroovyPageParser.java:1128)
at org.grails.gsp.compiler.GroovyPageParser.page(GroovyPageParser.java:866)
at org.grails.gsp.compiler.GroovyPageParser.generateGsp(GroovyPageParser.java:429)
at org.grails.gsp.compiler.GroovyPageParser.parse(GroovyPageParser.java:398)
at org.grails.gsp.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:578)
at org.grails.gsp.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:486)
at org.grails.gsp.GroovyPagesTemplateEngine$GroovyPagesTemplateEngineCacheEntry.updateValue(GroovyPagesTemplateEngine.java:155)
at org.grails.gsp.GroovyPagesTemplateEngine$GroovyPagesTemplateEngineCacheEntry.updateValue(GroovyPagesTemplateEngine.java:134)
at grails.util.CacheEntry.getValue(CacheEntry.java:159)
at grails.util.CacheEntry.getValue(CacheEntry.java:95)
at org.grails.gsp.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:301)
at org.grails.gsp.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:418)
at org.grails.gsp.GspCompileStaticSpec.renderTemplate(GspCompileStaticSpec.groovy:232)
at org.grails.gsp.GspCompileStaticSpec.should support g:each in both compilation modes(GspCompileStaticSpec.groovy:82)
```
</details>
<details>
<summary><strong>GspCompileStaticSpec > should support g:each in both compilation modes > should support g:each in both compilation modes [compileStatic: true, #0]</strong> (:grails-gsp-core:test in <a href="https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.grails.taglib.GrailsTagException: [Byte array resource [template791375379]:1] Attribute value quote wasn't closed (var='date' in='${dates}").
at org.grails.gsp.compiler.GroovyPageParser.populateMapWithAttributes(GroovyPageParser.java:1260)
at org.grails.gsp.compiler.GroovyPageParser.startTag(GroovyPageParser.java:1128)
at org.grails.gsp.compiler.GroovyPageParser.page(GroovyPageParser.java:866)
at org.grails.gsp.compiler.GroovyPageParser.generateGsp(GroovyPageParser.java:429)
at org.grails.gsp.compiler.GroovyPageParser.parse(GroovyPageParser.java:398)
at org.grails.gsp.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:578)
at org.grails.gsp.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:486)
at org.grails.gsp.GroovyPagesTemplateEngine$GroovyPagesTemplateEngineCacheEntry.updateValue(GroovyPagesTemplateEngine.java:155)
at org.grails.gsp.GroovyPagesTemplateEngine$GroovyPagesTemplateEngineCacheEntry.updateValue(GroovyPagesTemplateEngine.java:134)
at grails.util.CacheEntry.getValue(CacheEntry.java:159)
at grails.util.CacheEntry.getValue(CacheEntry.java:95)
at org.grails.gsp.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:301)
at org.grails.gsp.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:418)
at org.grails.gsp.GspCompileStaticSpec.renderTemplate(GspCompileStaticSpec.groovy:232)
at org.grails.gsp.GspCompileStaticSpec.should support g:each in both compilation modes(GspCompileStaticSpec.groovy:82)
```
</details>
<details>
<summary><strong>GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: false, #0]</strong> (:grails-gsp-core:test in <a href="https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.gsp.GspCompileStaticSpec.<%@ compileStatic=() is applicable for argument types: (Boolean) values: [true]
at org.grails.gsp.GspCompileStaticSpec.should support message tag invocation(GspCompileStaticSpec.groovy:91)
```
</details>
<details>
<summary><strong>GspCompileStaticSpec > should support message tag invocation > should support message tag invocation [gDotPrefix: true, #1]</strong> (:grails-gsp-core:test in <a href="https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
groovy.lang.MissingMethodException: No signature of method: org.grails.gsp.GspCompileStaticSpec.<%@ compileStatic=() is applicable for argument types: (Boolean) values: [true]
at org.grails.gsp.GspCompileStaticSpec.should support message tag invocation(GspCompileStaticSpec.groovy:91)
```
</details>
<details>
<summary><strong>GspCompileStaticSpec > should support typed variables in both compilation modes > should support typed variables in both compilation modes [compileStatic: false, #1]</strong> (:grails-gsp-core:test in <a href="https://github.com/apache/grails-core/actions/runs/25979941296/job/76366740492?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.grails.taglib.GrailsTagException: [Byte array resource [template1044218858]:1] Attribute value quote wasn't closed (type='Date' var='date' value='${new Date(123L)}").
at org.grails.gsp.compiler.GroovyPageParser.populateMapWithAttributes(GroovyPageParser.java:1260)
at org.grails.gsp.compiler.GroovyPageParser.startTag(GroovyPageParser.java:1128)
at org.grails.gsp.compiler.GroovyPageParser.page(GroovyPageParser.java:866)
at org.grails.gsp.compiler.GroovyPageParser.generateGsp(GroovyPageParser.java:429)
at org.grails.gsp.compiler.GroovyPageParser.parse(GroovyPageParser.java:398)
at org.grails.gsp.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:578)
at org.grails.gsp.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:486)
at org.grails.gsp.GroovyPagesTemplateEngine$GroovyPagesTemplateEngineCacheEntry.updateValue(GroovyPagesTemplateEngine.java:155)
at org.grails.gsp.GroovyPagesTemplateEngine$GroovyPagesTemplateEngineCacheEntry.updateValue(GroovyPagesTemplateEngine.java:134)
at grails.util.CacheEntry.getValue(CacheEntry.java:159)
at grails.util.CacheEntry.getValue(CacheEntry.java:95)
at org.grails.gsp.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:301)
at org.grails.gsp.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:418)
at org.grails.gsp.GspCompileStaticSpec.renderTemplate(GspCompileStaticSpec.groovy:232)
at org.grails.gsp.GspCompileStaticSpec.should support typed variables in both compilation modes(GspCompileStaticSpec.groovy:70)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 AdvancedCachingServiceSpec > test List results are cached <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_5] -->
🔲 AdvancedCachingServiceSpec > test Map results are cached <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_7] -->
🔲 AdvancedCachingServiceSpec > test Map results are cached correctly <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_8] -->
🔲 AdvancedCachingServiceSpec > test custom key closure creates separate cache entries <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_9] -->
🔲 AdvancedCachingServiceSpec > test custom key eviction <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_10] -->
🔲 AdvancedCachingServiceSpec > test different List parameters have separate cache entries <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_6] -->
🔲 AdvancedCachingServiceSpec > test different inputs have separate cache entries even with exceptions <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_4] -->
🔲 AdvancedCachingServiceSpec > test evicting one key does not affect other keys <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_11] -->
🔲 AdvancedCachingServiceSpec > test eviction clears collection caches <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_13] -->
🔲 AdvancedCachingServiceSpec > test eviction clears map cache <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_14] -->
🔲 AdvancedCachingServiceSpec > test eviction clears null cache <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_12] -->
🔲 AdvancedCachingServiceSpec > test exceptions are not cached <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_2] -->
🔲 AdvancedCachingServiceSpec > test non-null values are cached normally <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_1] -->
🔲 AdvancedCachingServiceSpec > test null values are cached by default <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_0] -->
🔲 AdvancedCachingServiceSpec > test successful results are cached even after exceptions <!-- uniqueId=[engine:spock]/[spec:com.demo.AdvancedCachingServiceSpec]/[feature:$spock_feature_0_3] -->
🔲 ApplyTemplateWithoutReferringToTagLibPropertySpec <!-- uniqueId=[engine:spock]/[spec:demo.ApplyTemplateWithoutReferringToTagLibPropertySpec] -->
🔲 AutowiredTestSpec > some other test method <!-- uniqueId=[engine:spock]/[spec:demo.AutowiredTestSpec]/[feature:$spock_feature_0_1] -->
🔲 AutowiredTestSpec > some test method <!-- uniqueId=[engine:spock]/[spec:demo.AutowiredTestSpec]/[feature:$spock_feature_0_0] -->
🔲 BasicCachingServiceNoCacheManagerSpec > test invoking cacheable method when no cache manager is present <!-- uniqueId=[engine:spock]/[spec:com.demo.BasicCachingServiceNoCacheManagerSpec]/[feature:$spock_feature_0_0] -->
🔲 BasicCachingServiceSpec > test invoking a cacheable method that expresses a condition <!-- uniqueId=[engine:spock]/[spec:com.demo.BasicCachingServiceSpec]/[feature:$spock_feature_0_1] -->
🔲 BasicCachingServiceSpec > test invoking cacheable method when cache manager is present <!-- uniqueId=[engine:spock]/[spec:com.demo.BasicCachingServiceSpec]/[feature:$spock_feature_0_0] -->
🔲 CarServiceSpec <!-- uniqueId=[engine:spock]/[spec:demo.CarServiceSpec] -->
🔲 CarSpec <!-- uniqueId=[engine:spock]/[spec:demo.CarSpec] -->
🔲 ClassMarkedCacheableSpec > test that expected methods have been configured as cacheable <!-- uniqueId=[engine:spock]/[spec:com.demo.ClassMarkedCacheableSpec]/[feature:$spock_feature_0_0] -->
🔲 ConfigReportCommandIntegrationSpec > ConfigReportCommand generates a report file with hybrid format <!-- uniqueId=[engine:spock]/[spec:configreport.ConfigReportCommandIntegrationSpec]/[feature:$spock_feature_0_0] -->
🔲 ConfigReportCommandIntegrationSpec > report contains properties from all three config sources <!-- uniqueId=[engine:spock]/[spec:configreport.ConfigReportCommandIntegrationSpec]/[feature:$spock_feature_0_7] -->
🔲 ConfigServiceSpec > singup is allowed if configuration parameter is set <!-- uniqueId=[engine:spock]/[spec:demo.ConfigServiceSpec]/[feature:$spock_feature_0_0] -->
🔲 ControllerTagLibMethodDispatchSpec <!-- uniqueId=[engine:spock]/[spec:demo.ControllerTagLibMethodDispatchSpec] -->
🔲 CrossDatasourceTransactionSpec > chained transaction manager coordinates transactions across datasources <!-- uniqueId=[engine:spock]/[spec:functionaltests.CrossDatasourceTransactionSpec]/[feature:$spock_feature_0_0] -->
🔲 CrossDatasourceTransactionSpec > count operations are datasource-specific <!-- uniqueId=[engine:spock]/[spec:functionaltests.CrossDatasourceTransactionSpec]/[feature:$spock_feature_0_11] -->
🔲 CrossDatasourceTransactionSpec > error in primary datasource does not affect already-committed secondary <!-- uniqueId=[engine:spock]/[spec:functionaltests.CrossDatasourceTransactionSpec]/[feature:$spock_feature_0_4] -->
🔲 CrossDatasourceTransactionSpec > nested transactions work correctly <!-- uniqueId=[engine:spock]/[spec:functionaltests.CrossDatasourceTransactionSpec]/[feature:$spock_feature_0_1] -->
🔲 CrossDatasourceTransactionSpec > operations on both datasources within single test method <!-- uniqueId=[engine:spock]/[spec:functionaltests.CrossDatasourceTransactionSpec]/[feature:$spock_feature_0_10] -->
🔲 CrossDatasourceTransactionSpec > read-only transactions work correctly <!-- uniqueId=[engine:spock]/[spec:functionaltests.CrossDatasourceTransactionSpec]/[feature:$spock_feature_0_3] -->
🔲 DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with \@Order <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_1] -->
🔲 DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using \@Order <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_2] -->
🔲 DataBindingConfigurationSpec > test that grailsWebDataBinder exists <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_0] -->
🔲 DataTestTraitSpec <!-- uniqueId=[engine:spock]/[spec:demo.DataTestTraitSpec] -->
🔲 DatasourceSwitchingSpec > CRUD operations work independently on each datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_2] -->
🔲 DatasourceSwitchingSpec > batch insert works on each datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_12] -->
🔲 DatasourceSwitchingSpec > bulk delete works on each datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_13] -->
🔲 DatasourceSwitchingSpec > count operations work correctly on each datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_9] -->
🔲 DatasourceSwitchingSpec > createCriteria routes to secondary datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_16] -->
🔲 DatasourceSwitchingSpec > data in primary datasource is isolated from secondary <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_0] -->
🔲 DatasourceSwitchingSpec > dynamic finders work on each datasource independently <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_3] -->
🔲 DatasourceSwitchingSpec > executeQuery routes to secondary datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_14] -->
🔲 DatasourceSwitchingSpec > findAll with criteria works on each datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_4] -->
🔲 DatasourceSwitchingSpec > same entity name in different packages uses different datasources <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_1] -->
🔲 DatasourceSwitchingSpec > secondary namespace API provides access to secondary datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_8] -->
🔲 DatasourceSwitchingSpec > transactions are independent between datasources <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_6] -->
🔲 DatasourceSwitchingSpec > where queries work on each datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_5] -->
🔲 DatasourceSwitchingSpec > withCriteria routes to secondary datasource <!-- uniqueId=[engine:spock]/[spec:functionaltests.DatasourceSwitchingSpec]/[feature:$spock_feature_0_15] -->
🔲 DirtyCheckingAfterListenerSpec > test state change from listener update the object <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.DirtyCheckingAfterListenerSpec]/[feature:$spock_feature_1_0] -->
🔲 ExternalConfigSpec > getting configuration from environment specific location <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_2] -->
🔲 ExternalConfigSpec > getting configuration from yml with multiple documents <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_15] -->
🔲 ExternalConfigSpec > when getting config with config class and environment block, expect the config to be loaded <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_4] -->
🔲 ExternalConfigSpec > when getting config with config class that has a canonical config, expect the config to be loaded <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_5] -->
🔲 ExternalConfigSpec > when getting config with config class that has a two levels of canonical config, expect the config to be loaded <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_6] -->
🔲 ExternalConfigSpec > when getting config with config class, expect the config to be loaded <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_3] -->
🔲 ExternalConfigSpec > when getting config with configs does not exist, noting changes <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_1] -->
🔲 ExternalConfigSpec > when getting config with file in classpath <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_10] -->
🔲 ExternalConfigSpec > when getting config with file in specific folder <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_9] -->
🔲 ExternalConfigSpec > when getting config with file in system property user.home <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_8] -->
🔲 ExternalConfigSpec > when getting config with file in user.home <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_7] -->
🔲 ExternalConfigSpec > when getting config with wildcard files from tmp <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_13] -->
🔲 ExternalConfigSpec > when getting config with wildcard files from user home <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_14] -->
🔲 ExternalConfigSpec > when getting config without grails.config.location set, the config does not change <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_0] -->
🔲 ExternalConfigSpec > when getting referenced config with file in classpath <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_11] -->
🔲 ExternalConfigSpec > when getting yml config with file in classpath and with environments block <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.ExternalConfigSpec]/[feature:$spock_feature_0_12] -->
🔲 FlashMessagesTagLibSpec <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.views.gsp.layout.FlashMessagesTagLibSpec] -->
🔲 GormMappingConfigurationStrategySpec > test getPersistentProperties with basic properties and transients <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.mapping.model.config.GormMappingConfigurationStrategySpec]/[feature:$spock_feature_0_4] -->
🔲 GreetingServiceSpec > test greeting returns expected message <!-- uniqueId=[engine:spock]/[spec:testphases.GreetingServiceSpec]/[feature:$spock_feature_0_0] -->
🔲 GreetingServiceSpec > test greeting with empty name <!-- uniqueId=[engine:spock]/[spec:testphases.GreetingServiceSpec]/[feature:$spock_feature_0_1] -->
🔲 GspCompileStaticSpec > should support g:each in both compilation modes <!-- uniqueId=[engine:spock]/[spec:org.grails.gsp.GspCompileStaticSpec]/[feature:$spock_feature_0_3] -->
🔲 GspCompileStaticSpec > should support message tag invocation <!-- uniqueId=[engine:spock]/[spec:org.grails.gsp.GspCompileStaticSpec]/[feature:$spock_feature_0_4] -->
🔲 GspCompileStaticSpec > should support typed variables in both compilation modes <!-- uniqueId=[engine:spock]/[spec:org.grails.gsp.GspCompileStaticSpec]/[feature:$spock_feature_0_2] -->
🔲 GspCompileStaticSpec > specifying model implies compileStatic mode <!-- uniqueId=[engine:spock]/[spec:org.grails.gsp.GspCompileStaticSpec]/[feature:$spock_feature_0_1] -->
🔲 JsonViewUnitTestSpec <!-- uniqueId=[engine:spock]/[spec:grails.plugin.json.view.test.JsonViewUnitTestSpec] -->
🔲 MergedConfigSpec > when merging multiple configs the expected values are in the final result <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.MergedConfigSpec]/[feature:$spock_feature_0_0] -->
🔲 MergedConfigSpec > when merging multiple groovy configs the expected values are in the final result <!-- uniqueId=[engine:spock]/[spec:grails.plugin.externalconfig.MergedConfigSpec]/[feature:$spock_feature_0_1] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4502782336
## 🚨 TestLens detected 131 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with \@Order | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using \@Order | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-databinding:test | DataBindingConfigurationSpec > test that grailsWebDataBinder exists | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800914?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797102?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056800894?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797032?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'a\'\},\{\'id\':2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'id\':1,\'name\': \'a\'\},\'b\': \{\'id\':2,\'name\': \'b\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>a\</name\>\</author\>\<author id\=\'2\'\>\<name\>b\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations > Test DomainClassMarshaller\'s should maintain order of relations [authors: [org.grails.web.converters.marshaller.json.Author : 2, org.grails.web.converters.marshaller.json.Author : 1], expectedJson: \{\'id\':1,\'authorsSet\': [\{\'id\':1,\'name\': \'b\'\},\{\'id\':2,\'name\': \'a\'\}],\'authorsMap\': \{\'b\':\{\'id\':1,\'name\': \'b\'\},\'a\': \{\'id\':2,\'name\': \'a\'\}\}\}, expectedXml: \<\?xml version\=\'1.0\' encoding\=\'UTF-8\'\?\>\<book id\=\'1\'\>\<authorsSet\>\<author id\=\'1\'\>\<name\>b\</name\>\</author\>\<author id\=\'2\'\>\<name\>a\</name\>\</author\>\</authorsSet\>\<authorsMap\>\<… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshaller should render the ID properly | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-converters:test | DomainClassMarshallerSpec > test marshallers generate class names when options are set > test marshallers generate class names when options are set [authors: [org.grails.web.converters.marshaller.json.Author : 1, org.grails.web.converters.marshaller.json.Author : 2], expectedJson: \{\'class\':\'org.grails.web.converters.marshaller.json.Book\',\'id\': 1,\'authorsSet\': [\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 1,\'name\': \'a\'\},\{\'class\':\'org.grails.web.converters.marshaller.json.Author\',\'id\': 2,\'name\': \'b\'\}],\'authorsMap\': \{\'a\':\{\'class\':\'org.grails.web.converters.marshaller.json.Aut… | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test basic filter | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | StackTraceFiltererSpec > Test deep filter | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print code snippet | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print nested exception code snippet | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-core:test | StackTracePrinterSpec > Test pretty print simple stack trace | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-converters:test | StaticPropertySpec > static property should be excluded | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801144?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
| [CI / Build Grails-Core \(windows-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797062?pr=15656) | :grails-converters:test | ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError | ❌ |
🏷️ Commit: a6b00989bc912f7d35c6c7b4be95f7943e4280e5
▶️ Tests: 6973 executed
🟡 Checks: 18/65 completed
### Test Failures (first 5 of 131)
<details>
<summary><strong>CacheTagLibSpec</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1443)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:244)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:114)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.spock.WebSetupSpecInterceptor.setup(WebSetupSpecInterceptor.groovy:73)
at org.grails.testing.spock.WebSetupSpecInterceptor.intercept(WebSetupSpecInterceptor.groovy:66)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
```
</details>
<details>
<summary><strong>CacheTagLibSpec</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1443)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:244)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:114)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.spock.WebSetupSpecInterceptor.setup(WebSetupSpecInterceptor.groovy:73)
at org.grails.testing.spock.WebSetupSpecInterceptor.intercept(WebSetupSpecInterceptor.groovy:66)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
```
</details>
<details>
<summary><strong>CacheableParseSpec > test include tenant id when used with @CurrentTenant and @Transactional</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
java.lang.IllegalStateException: No GORM implementations configured. Ensure GORM has been initialized correctly
at org.grails.datastore.gorm.GormRegistry.findSingleTransactionManager(GormRegistry.groovy:189)
at TestService.multiply_closure1(Script1.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.multitenancy.Tenants.executeCallable(Tenants.groovy:320)
at grails.gorm.multitenancy.Tenants.withId_closure4(Tenants.groovy:299)
at grails.gorm.multitenancy.CurrentTenantHolder.withTenant(CurrentTenantHolder.groovy:90)
at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:298)
at org.grails.datastore.gorm.services.DefaultTenantService.withCurrent(DefaultTenantService.groovy:94)
at grails.plugin.cache.CacheableParseSpec.test include tenant id when used with @CurrentTenant and @Transactional(CacheableParseSpec.groovy:140)
```
</details>
<details>
<summary><strong>CacheableParseSpec > test include tenant id when used with @CurrentTenant and @Transactional</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26190336649/job/77056797122?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
java.lang.IllegalStateException: No GORM implementations configured. Ensure GORM has been initialized correctly
at org.grails.datastore.gorm.GormRegistry.findSingleTransactionManager(GormRegistry.groovy:189)
at TestService.multiply_closure1(Script1.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.multitenancy.Tenants.executeCallable(Tenants.groovy:320)
at grails.gorm.multitenancy.Tenants.withId_closure4(Tenants.groovy:299)
at grails.gorm.multitenancy.CurrentTenantHolder.withTenant(CurrentTenantHolder.groovy:90)
at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:298)
at org.grails.datastore.gorm.services.DefaultTenantService.withCurrent(DefaultTenantService.groovy:94)
at grails.plugin.cache.CacheableParseSpec.test include tenant id when used with @CurrentTenant and @Transactional(CacheableParseSpec.groovy:140)
```
</details>
<details>
<summary><strong>ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties</strong> (:grails-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26190337825/job/77056801094?pr=15656">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition failed with Exception:
otherSection.contains('[cols='2,3', options='header']')
| |
| groovy.lang.MissingMethodException: No signature of method: grails.dev.commands.ConfigReportCommandSpec.[cols=() is applicable for argument types: (Integer, Integer) values: [2, 3]
| Possible solutions: Mock()
| at grails.dev.commands.ConfigReportCommandSpec.writeReport puts only unknown runtime properties in Other Properties(ConfigReportCommandSpec.groovy:326)
== Other Properties
[cols='2,3', options='header']
|===
| Property | Default
| `custom.app.setting`
| `myvalue`
|===
at grails.dev.commands.ConfigReportCommandSpec.writeReport puts only unknown runtime properties in Other Properties(ConfigReportCommandSpec.groovy:326)
Caused by: groovy.lang.MissingMethodException: No signature of method: grails.dev.commands.ConfigReportCommandSpec.[cols=() is applicable for argument types: (Integer, Integer) values: [2, 3]
Possible solutions: Mock()
... 1 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 CacheTagLibSpec <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheTagLibSpec] -->
🔲 CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheableParseSpec]/[feature:$spock_feature_0_2] -->
🔲 ConfigReportCommandSpec > writeReport puts only unknown runtime properties in Other Properties <!-- uniqueId=[engine:spock]/[spec:grails.dev.commands.ConfigReportCommandSpec]/[feature:$spock_feature_0_13] -->
🔲 ConfigReportCommandSpec > writeReport uses 3-column format with metadata categories <!-- uniqueId=[engine:spock]/[spec:grails.dev.commands.ConfigReportCommandSpec]/[feature:$spock_feature_0_8] -->
🔲 DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with \@Order <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_1] -->
🔲 DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using \@Order <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_2] -->
🔲 DataBindingConfigurationSpec > test that grailsWebDataBinder exists <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databinding.DataBindingConfigurationSpec]/[feature:$spock_feature_0_0] -->
🔲 DomainClassMarshallerSpec > Test DomainClassMarshaller\'s should maintain order of relations <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_0] -->
🔲 DomainClassMarshallerSpec > test marshaller should render the ID properly <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_1] -->
🔲 DomainClassMarshallerSpec > test marshallers generate class names when options are set <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.DomainClassMarshallerSpec]/[feature:$spock_feature_0_2] -->
🔲 PluginDiscoverySpec > returns no plugin or provided classes when plugin XML has no matching elements <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.core.plugins.PluginDiscoverySpec]/[feature:$spock_feature_0_11] -->
🔲 StackTraceFiltererSpec > Test basic filter <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTraceFiltererSpec]/[feature:$spock_feature_0_0] -->
🔲 StackTraceFiltererSpec > Test deep filter <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTraceFiltererSpec]/[feature:$spock_feature_0_1] -->
🔲 StackTracePrinterSpec > Test pretty print code snippet <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_3] -->
🔲 StackTracePrinterSpec > Test pretty print nested exception code snippet <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_4] -->
🔲 StackTracePrinterSpec > Test pretty print simple stack trace <!-- uniqueId=[engine:spock]/[spec:org.grails.exception.reporting.StackTracePrinterSpec]/[feature:$spock_feature_0_0] -->
🔲 StaticPropertySpec > static property should be excluded <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.StaticPropertySpec]/[feature:$spock_feature_0_0] -->
🔲 ValidationErrorsMarshallerSpec > Test marshalObject handles org.springframework.validation.ObjectError <!-- uniqueId=[engine:spock]/[spec:org.grails.web.converters.marshaller.json.ValidationErrorsMarshallerSpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4445943158
## 🚨 TestLens detected 2 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25831684126/job/75898221975?pr=15656) | :grails-data-hibernate5-dbmigration:test | GroovyChangeLogSpec > outputs a warning message by calling the warn method | ❌ |
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/25831684126/job/75898221975?pr=15656) | :grails-data-hibernate5-dbmigration:test | GroovyChangeLogSpec > updates a database with Groovy Change | ❌ |
🏷️ Commit: 6bbaef21f2ccb1f5df7310d9b187d37c66852ab8
▶️ Tests: 1037 executed
🟡 Checks: 31/35 completed
### Test Failures
<details>
<summary><strong>GroovyChangeLogSpec > outputs a warning message by calling the warn method</strong> (:grails-data-hibernate5-dbmigration:test in <a href="https://github.com/apache/grails-core/actions/runs/25831684126/job/75898221975?pr=15656">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition not satisfied:
output.toString().contains('warn message')
| | |
| | false
| 23:21:56.029 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
| Running Changeset: changelog.groovy::2::John Smith
|
| UPDATE SUMMARY
| Run: 1
| Previously run: 0
| Filtered out: 0
| -------------------------------
| Total change sets: 1
|
| Liquibase: Update has been successful. Rows affected: 1
23:21:56.029 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Running Changeset: changelog.groovy::2::John Smith
UPDATE SUMMARY
Run: 1
Previously run: 0
Filtered out: 0
-------------------------------
Total change sets: 1
Liquibase: Update has been successful. Rows affected: 1
at org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec.outputs a warning message by calling the warn method(GroovyChangeLogSpec.groovy:87)
```
</details>
<details>
<summary><strong>GroovyChangeLogSpec > updates a database with Groovy Change</strong> (:grails-data-hibernate5-dbmigration:test in <a href="https://github.com/apache/grails-core/actions/runs/25831684126/job/75898221975?pr=15656">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition not satisfied:
output.toString().contains('confirmation message')
| | |
| | false
| 23:21:55.621 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
| Running Changeset: changelog.groovy::1::John Smith
|
| UPDATE SUMMARY
| Run: 1
| Previously run: 0
| Filtered out: 0
| -------------------------------
| Total change sets: 1
|
| Liquibase: Update has been successful. Rows affected: 1
23:21:55.621 [Test worker] INFO org.hibernate.dialect.Dialect -- HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Running Changeset: changelog.groovy::1::John Smith
UPDATE SUMMARY
Run: 1
Previously run: 0
Filtered out: 0
-------------------------------
Total change sets: 1
Liquibase: Update has been successful. Rows affected: 1
at org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec.updates a database with Groovy Change(GroovyChangeLogSpec.groovy:61)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 GroovyChangeLogSpec > outputs a warning message by calling the warn method <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec]/[feature:$spock_feature_2_1] -->
🔲 GroovyChangeLogSpec > updates a database with Groovy Change <!-- uniqueId=[engine:spock]/[spec:org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSpec]/[feature:$spock_feature_2_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid closed pull request #15656: GORM: Shared Mapping Registry O(M+N) Scaling
URL: https://github.com/apache/grails-core/pull/15656
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "jdaugherty (via GitHub)" <gi...@apache.org>.
jdaugherty commented on code in PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#discussion_r3237373193
##########
grails-console/build.gradle:
##########
@@ -44,7 +44,7 @@ dependencies {
implementation 'org.fusesource.jansi:jansi'
implementation 'org.jline:jline'
// TODO: Remove jline:jline (JLine 2) when upgrading to Groovy 5 (groovy-groovysh 5.x uses JLine 3)
- implementation 'jline:jline'
+ implementation 'jline:jline:2.14.6'
Review Comment:
This is the wrong change. These values should come from the bom.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4434680626
<!--
SPDX-License-Identifier: Apache-2.0
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# GORM Scaling Program — Change Log and Optimization Backlog
This document now tracks what has already changed for the O(M+N) scaling work and what can still be optimized. It is no longer a failure tracker.
---
## 1) Core changes implemented
### Shared-registry architecture (O(M+N))
- Introduced `GormRegistry` and moved registry responsibilities out of per-tenant duplication paths.
- Refactored `GormEnhancer`, `GormStaticApi`, and `GormInstanceApi` to resolve APIs through shared registry data.
- Updated tenant-aware resolution flow (`Tenants`, enhancer lookup paths, qualifier handling) to match shared registry behavior.
### Datastore integrations aligned to shared model
- Hibernate 7: updated static/instance/enhancer APIs and related datastore/session/query wiring to use the new registry approach.
- Hibernate 5: parallel alignment with H7 so API behavior stays consistent across both engines.
- MongoDB: updated static API and codec/persister integration points to align with shared registry and tenant resolution changes.
- SimpleMap datastore: large query/persister/session updates to keep core behavior consistent with new registry flow.
### Query and session behavior hardening
- Refined key query/session paths in Hibernate and SimpleMap implementations where registry and tenant context are used.
- Added or adjusted session-resolver/runtime utilities where needed to keep API behavior stable under multi-tenancy.
### Transform and compile-time behavior updates
- Updated service and transactional transform logic to match registry/data access changes.
- Reorganized transform test assets (including moved/expanded transform specs/classes).
### Test coverage expanded for scale + regressions
- Added `GormRegistryScalabilitySpec` coverage across core modules (core, H5, H7, Mongo).
- Added and updated regression coverage around enhancer, static API, transaction manager, and transform behavior.
### Local selected-module workflow improvements
- Selected-module runs now enforce CodeNarc/Checkstyle aggregation without forcing PMD/SpotBugs in that path.
- `testSelected` flow remains focused on selected modules with aggregated test/style outputs.
---
## 2) Potential optimization opportunities
## A. Registry/API hot-path efficiency
**Goal:** reduce repeated lookup overhead under high tenant/entity counts.
1. Cache normalized entity keys and qualifier maps in one place to reduce repeated normalization work.
2. Audit repeated `findDatastore`/qualifier fallback chains and collapse duplicate branches.
3. Benchmark `computeIfAbsent` and lock contention patterns in registry-heavy paths.
## B. Tenant context and session routing
**Goal:** lower context-switch overhead and reduce accidental cross-context work.
1. Profile tenant context wrapping frequency in static API calls.
2. Identify places where tenant/session context can be propagated once instead of re-resolved.
3. Add targeted perf specs for DISCRIMINATOR and SCHEMA mode query loops.
## C. Query builder/runtime allocation pressure
**Goal:** reduce temporary object churn in frequently executed query paths.
1. Review HQL/criteria builder allocation patterns in H5/H7 and SimpleMap query implementations.
2. Reuse immutable query metadata where safe.
3. Add microbenchmarks for common `list/find/count` paths with multi-tenant datasets.
## D. Transform pipeline cost
**Goal:** reduce compile-time overhead from service/transaction transforms.
1. Measure transform execution hotspots after recent refactors.
2. Consolidate duplicated transform helper logic.
3. Add performance-oriented transform tests focused on large service sets.
## E. Test/runtime throughput
**Goal:** keep regression coverage while reducing local/CI cycle time.
1. Keep scalability specs, but tune dataset sizes for stable signal-to-cost ratio.
2. Split long-running integration groups where practical.
3. Continue selected-module execution strategy for local iteration, full-suite in CI.
---
## 3) Suggested tracking format for future updates
When adding new work items to this file:
- Record the **change** under section 1 with module + behavior impact.
- Record follow-up work under section 2 with a short **goal** and concrete next actions.
- Avoid adding pass/fail snapshots here; keep this file architectural and optimization-focused.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] GORM: Shared Mapping Registry O(M+N) Scaling [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15656:
URL: https://github.com/apache/grails-core/pull/15656#issuecomment-4484205534
## 🚨 TestLens detected 4 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964232?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964232?pr=15656) | :grails-cache:test | CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional | ❌ |
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964253?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
| [CI / Build Grails-Core Rerunning all Tasks \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964209?pr=15656) | :grails-cache:test | CacheTagLibSpec | ❌ |
🏷️ Commit: 4189d55a1f03de616942e212e9cb41362b63f109
▶️ Tests: 1370 executed
🟡 Checks: 12/35 completed
### Test Failures
<details>
<summary><strong>CacheTagLibSpec</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964232?pr=15656">CI / Build Grails-Core (ubuntu-latest, 21)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1443)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:244)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:114)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.spock.WebSetupSpecInterceptor.setup(WebSetupSpecInterceptor.groovy:73)
at org.grails.testing.spock.WebSetupSpecInterceptor.intercept(WebSetupSpecInterceptor.groovy:66)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
```
</details>
<details>
<summary><strong>CacheableParseSpec > test include tenant id when used with @CurrentTenant and @Transactional</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964232?pr=15656">CI / Build Grails-Core (ubuntu-latest, 21)</a>)</summary>
```
java.lang.IllegalStateException: No GORM implementations configured. Ensure GORM has been initialized correctly
at org.grails.datastore.gorm.GormRegistry.findSingleTransactionManager(GormRegistry.groovy:190)
at TestService.multiply_closure1(Script1.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.multitenancy.Tenants.executeCallable(Tenants.groovy:320)
at grails.gorm.multitenancy.Tenants.withId_closure4(Tenants.groovy:299)
at grails.gorm.multitenancy.CurrentTenantHolder.withTenant(CurrentTenantHolder.groovy:90)
at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:298)
at org.grails.datastore.gorm.services.DefaultTenantService.withCurrent(DefaultTenantService.groovy:94)
at grails.plugin.cache.CacheableParseSpec.test include tenant id when used with @CurrentTenant and @Transactional(CacheableParseSpec.groovy:140)
```
</details>
<details>
<summary><strong>CacheTagLibSpec</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964253?pr=15656">CI / Build Grails-Core (ubuntu-latest, 25)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1453)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:243)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3089)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:866)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:635)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:113)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:551)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:890)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:826)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:137)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:248)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:335)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.spock.WebSetupSpecInterceptor.setup(WebSetupSpecInterceptor.groovy:73)
at org.grails.testing.spock.WebSetupSpecInterceptor.intercept(WebSetupSpecInterceptor.groovy:66)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
```
</details>
<details>
<summary><strong>CacheTagLibSpec</strong> (:grails-cache:test in <a href="https://github.com/apache/grails-core/actions/runs/26074282378/job/76661964209?pr=15656">CI / Build Grails-Core Rerunning all Tasks (ubuntu-latest, 21)</a>)</summary>
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 9; Element type "context" must be followed by either attribute specifications, ">" or "/>".
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1443)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:244)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:615)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:114)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:127)
at org.grails.testing.GrailsApplicationBuilder.registerBeans_closure5(GrailsApplicationBuilder.groovy:224)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:412)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at org.grails.testing.GrailsApplicationBuilder.defineBeans(GrailsApplicationBuilder.groovy:210)
at org.grails.testing.GrailsApplicationBuilder.registerBeans(GrailsApplicationBuilder.groovy:217)
at org.grails.testing.GrailsApplicationBuilder.registerGrailsAppPostProcessorBean_closure6(GrailsApplicationBuilder.groovy:241)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:765)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:594)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:231)
at org.grails.testing.GrailsApplicationBuilder$TestRuntimeGrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationBuilder.groovy:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603)
at org.grails.testing.GrailsApplicationBuilder.createMainContext(GrailsApplicationBuilder.groovy:175)
at org.grails.testing.GrailsApplicationBuilder.build(GrailsApplicationBuilder.groovy:88)
at org.grails.testing.GrailsUnitTest$Trait$Helper.getGrailsApplication(GrailsUnitTest.groovy:76)
at org.grails.testing.spock.WebSetupSpecInterceptor.setup(WebSetupSpecInterceptor.groovy:73)
at org.grails.testing.spock.WebSetupSpecInterceptor.intercept(WebSetupSpecInterceptor.groovy:66)
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 CacheTagLibSpec <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheTagLibSpec] -->
🔲 CacheableParseSpec > test include tenant id when used with \@CurrentTenant and \@Transactional <!-- uniqueId=[engine:spock]/[spec:grails.plugin.cache.CacheableParseSpec]/[feature:$spock_feature_0_2] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org