Skip to content

feat: wire Neo4j adapter to GormRegistry O(M+N) scaling#15784

Open
borinquenkid wants to merge 1 commit into
feat/gorm-registry-mongodbfrom
feat/gorm-registry-neo4j
Open

feat: wire Neo4j adapter to GormRegistry O(M+N) scaling#15784
borinquenkid wants to merge 1 commit into
feat/gorm-registry-mongodbfrom
feat/gorm-registry-neo4j

Conversation

@borinquenkid

Copy link
Copy Markdown
Member

Summary

Wires the Neo4j adapter into the GormRegistry introduced in #15780.

  • Neo4jGormEnhancer — registers Neo4j GORM APIs with GormRegistry via the standard factory pattern
  • Updated Neo4j TCK specs and affected tests to use the registry-based API path
  • Unit test: Neo4jTenantContextProfilingSpec

Test plan

  • ./gradlew :grails-data-neo4j:test passes
  • TCK suite passes with Neo4j datastore

Stack

🤖 Generated with Claude Code

@borinquenkid borinquenkid force-pushed the feat/gorm-registry-mongodb branch from 59e2f00 to 371b1c9 Compare June 27, 2026 17:36
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-neo4j branch from a5b4e3c to 2895797 Compare June 27, 2026 17:37
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-mongodb branch from 371b1c9 to cf60629 Compare June 27, 2026 18:14
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-neo4j branch from 2895797 to 6196ff4 Compare June 27, 2026 18:15
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-mongodb branch from cf60629 to 6d7070a Compare June 27, 2026 20:46
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-neo4j branch from 6196ff4 to c9dcec4 Compare June 27, 2026 20:47
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-mongodb branch from 6d7070a to a597040 Compare June 27, 2026 22:03
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-neo4j branch from c9dcec4 to ebf332f Compare June 27, 2026 22:03
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-mongodb branch from a597040 to 4e0ed09 Compare June 27, 2026 22:23
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-neo4j branch from ebf332f to 29b8210 Compare June 27, 2026 22:23
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-mongodb branch from 4e0ed09 to 6504e90 Compare June 27, 2026 22:58
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-neo4j branch 2 times, most recently from acf540c to f6cae14 Compare June 28, 2026 00:19
Register Neo4j GORM APIs with GormRegistry in Neo4jGormEnhancer and update
affected Neo4j tests and TCK specs to use the registry-based API path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-mongodb branch from 6504e90 to 84a342e Compare June 28, 2026 00:53
@borinquenkid borinquenkid force-pushed the feat/gorm-registry-neo4j branch from f6cae14 to 465c3bd Compare June 28, 2026 00:53
@testlens-app

testlens-app Bot commented Jun 28, 2026

Copy link
Copy Markdown

🚨 TestLens detected 843 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

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-gorm:integrationTest (first 40 of 226)

Test Runs
AbstractParentSpec > Test that persisting a domain class with an abstract parent works
BindingOutsideRequestSpec > Save nested company nested with webrequest
BindingOutsideRequestSpec > Save nested company without webrequest (Quartz/Bpotstrap)
BookSpec > Test dynamic finders work
DirtyCheckBindingSpec > bindData over HTTP does not bind id or version on a domain extending a @DirtyCheck base
DirtyCheckBindingSpec > binding only a regular property over HTTP leaves id and version null
ExistsSpec > exists returns correct result with multiple rows in table
ExistsSpec > exists returns false for non-existent id
ExistsSpec > exists returns true for persisted entity
FieldsValidationSpec > author email validation shows error for invalid format
GormCascadeOperationsSpec > test addTo creates bidirectional link
GormCascadeOperationsSpec > test batch insert with associations
GormCascadeOperationsSpec > test belongsTo allows orphan removal
GormCascadeOperationsSpec > test bidirectional navigation
GormCascadeOperationsSpec > test cascade save with nested new objects
GormCascadeOperationsSpec > test collection operations on hasMany
GormCascadeOperationsSpec > test deleting child does not delete parent
GormCascadeOperationsSpec > test dirty checking with associations
GormCascadeOperationsSpec > test hasMany cascade save for City and Users
GormCascadeOperationsSpec > test lazy loading of associations
GormCascadeOperationsSpec > test removeFrom breaks bidirectional link
GormCascadeOperationsSpec > test removing user from city
GormCascadeOperationsSpec > test saving child with belongsTo saves parent reference
GormCascadeOperationsSpec > test saving parent cascades to children with addTo
GormCascadeOperationsSpec > test updating multiple children
GormCascadeOperationsSpec > test updating parent does not affect children unless changed
GormCriteriaQueriesSpec > test HQL aggregate functions
GormCriteriaQueriesSpec > test HQL group by
GormCriteriaQueriesSpec > test HQL join query
GormCriteriaQueriesSpec > test HQL with named parameters
GormCriteriaQueriesSpec > test HQL with pagination
GormCriteriaQueriesSpec > test HQL with positional parameters
GormCriteriaQueriesSpec > test basic HQL query
GormCriteriaQueriesSpec > test criteria with association
GormCriteriaQueriesSpec > test criteria with association property
GormCriteriaQueriesSpec > test criteria with avg projection
GormCriteriaQueriesSpec > test criteria with between restriction
GormCriteriaQueriesSpec > test criteria with count projection
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: eq

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-issue-698-domain-save-npe:integrationTest

Test Runs
BookSpecSpec > It works well if there is no validate error in both Java 7 and 8

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-scaffolding-fields:integrationTest (first 40 of 105)

Test Runs
CrudFunctionalSpec > Can navigate from list to create to list
CrudFunctionalSpec > Can navigate from list to show to edit to show
CrudFunctionalSpec > Create department with valid data succeeds
CrudFunctionalSpec > Create employee with valid data succeeds
CrudFunctionalSpec > Create page displays correctly
CrudFunctionalSpec > Delete removes employee from list
CrudFunctionalSpec > Department list page displays correctly
CrudFunctionalSpec > Edit employee with valid data succeeds
CrudFunctionalSpec > Edit page displays correctly with existing data
CrudFunctionalSpec > Employee list page displays correctly
CrudFunctionalSpec > List page shows create new button
CrudFunctionalSpec > Project list page displays correctly
CrudFunctionalSpec > Show page displays employee details
CrudFunctionalSpec > Show page has edit and delete buttons
CustomTemplatesSpec > custom biography wrapper template is used on create page
FieldTypesSpec > Association select contains existing options
FieldTypesSpec > BelongsTo association renders as select dropdown
FieldTypesSpec > BigDecimal property renders as number input
FieldTypesSpec > Boolean property renders as checkbox
FieldTypesSpec > Byte array property renders as file input
FieldTypesSpec > Currency property renders as select
FieldTypesSpec > Date property renders as date input or text
FieldTypesSpec > Embedded object properties are rendered inline
FieldTypesSpec > Enum property renders as select dropdown
FieldTypesSpec > Enum select contains all enum values
FieldTypesSpec > Field #fieldName is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field active is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field email is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field firstName is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field lastName is present on create form
FieldTypesSpec > Fields have associated labels
FieldTypesSpec > HasMany association renders as multi-select or list
FieldTypesSpec > Integer property renders as number input
FieldTypesSpec > Locale property renders as select
FieldTypesSpec > Property with inList constraint renders as select
FieldTypesSpec > Required fields have visual indicator
FieldTypesSpec > String property renders as text input
FieldTypesSpec > String property with email constraint renders as email input
FieldTypesSpec > String property with widget:textarea renders as textarea
FieldTypesSpec > TimeZone property renders as select

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-scaffolding:integrationTest

Test Runs
UserCommunityControllerSpec > User list
UserControllerSpec > User list

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-views-functional-tests:integrationTest

Test Runs
BookSpec > Object type of list is used for model variable in addition to specified model and var when rendering templates
BookSpec > Object type of list is used for model variable in addition to specified model when rendering templates
BookSpec > Object type of list is used for model variable when rendering templates
BookSpec > Test REST view rendering
CircularSpec > test deep rendering of circular domain relationships
CircularSpec > test nested template rendering of circular domain relationships
CustomerSpec > Test that circular references are correctly rendered for one to many relationship
ProductSpec > test a middle page worth of products
ProductSpec > test a page worth of products
ProductSpec > testEmptyProducts
ProductSpec > testSingleProduct
ProjectSpec > Test that circular references are correctly rendered for many to many relationship
ProxySpec > Test template is found for proxy instance that is initialized
TeamSpec > Test HAL rendering
TeamSpec > Test association template rendering
TeamSpec > Test composite ID rendering
TeamSpec > Test deep association template rendering
VehicleSpec > Test that domain association subclasses render their properties
VehicleSpec > Test that domain subclasses render their properties

CI / Functional Tests (Java 21, indy=true) > :grails-test-examples-datasources:integrationTest

Test Runs
CrossDatasourceTransactionSpec > REQUIRES_NEW creates independent transaction
CrossDatasourceTransactionSpec > chained transaction manager coordinates transactions across datasources
CrossDatasourceTransactionSpec > count operations are datasource-specific
CrossDatasourceTransactionSpec > detached objects can be reattached in different transactions
CrossDatasourceTransactionSpec > error in primary datasource does not affect already-committed secondary
CrossDatasourceTransactionSpec > error in secondary datasource can be caught without affecting primary
CrossDatasourceTransactionSpec > flush mode can be controlled within session
CrossDatasourceTransactionSpec > nested transactions work correctly
CrossDatasourceTransactionSpec > operations on both datasources within single test method
CrossDatasourceTransactionSpec > read-only transactions work correctly
CrossDatasourceTransactionSpec > withNewSession creates new Hibernate session
DatasourceSwitchingSpec > CRUD operations work independently on each datasource
DatasourceSwitchingSpec > batch insert works on each datasource
DatasourceSwitchingSpec > bulk delete works on each datasource
DatasourceSwitchingSpec > count operations work correctly on each datasource
DatasourceSwitchingSpec > createCriteria routes to secondary datasource
DatasourceSwitchingSpec > data in primary datasource is isolated from secondary
DatasourceSwitchingSpec > dynamic finders work on each datasource independently
DatasourceSwitchingSpec > executeQuery routes to secondary datasource
DatasourceSwitchingSpec > executeUpdate routes to secondary datasource
DatasourceSwitchingSpec > findAll with criteria works on each datasource
DatasourceSwitchingSpec > rollback in one datasource does not affect other
DatasourceSwitchingSpec > same entity name in different packages uses different datasources
DatasourceSwitchingSpec > secondary namespace API provides access to secondary datasource
DatasourceSwitchingSpec > transactions are independent between datasources
DatasourceSwitchingSpec > where queries work on each datasource
DatasourceSwitchingSpec > withCriteria routes to secondary datasource
MultipleDataSourcesSpec > Test multiple data source persistence
OsivGspRenderingSpec > OSIV keeps secondary datasource session open during GSP view rendering

CI / Functional Tests (Java 21, indy=true) > :grails-test-examples-gorm:integrationTest (first 40 of 226)

Test Runs
AbstractParentSpec > Test that persisting a domain class with an abstract parent works
BindingOutsideRequestSpec > Save nested company nested with webrequest
BindingOutsideRequestSpec > Save nested company without webrequest (Quartz/Bpotstrap)
BookSpec > Test dynamic finders work
DirtyCheckBindingSpec > bindData over HTTP does not bind id or version on a domain extending a @DirtyCheck base
DirtyCheckBindingSpec > binding only a regular property over HTTP leaves id and version null
ExistsSpec > exists returns correct result with multiple rows in table
ExistsSpec > exists returns false for non-existent id
ExistsSpec > exists returns true for persisted entity
FieldsValidationSpec > author email validation shows error for invalid format
GormCascadeOperationsSpec > test addTo creates bidirectional link
GormCascadeOperationsSpec > test batch insert with associations
GormCascadeOperationsSpec > test belongsTo allows orphan removal
GormCascadeOperationsSpec > test bidirectional navigation
GormCascadeOperationsSpec > test cascade save with nested new objects
GormCascadeOperationsSpec > test collection operations on hasMany
GormCascadeOperationsSpec > test deleting child does not delete parent
GormCascadeOperationsSpec > test dirty checking with associations
GormCascadeOperationsSpec > test hasMany cascade save for City and Users
GormCascadeOperationsSpec > test lazy loading of associations
GormCascadeOperationsSpec > test removeFrom breaks bidirectional link
GormCascadeOperationsSpec > test removing user from city
GormCascadeOperationsSpec > test saving child with belongsTo saves parent reference
GormCascadeOperationsSpec > test saving parent cascades to children with addTo
GormCascadeOperationsSpec > test updating multiple children
GormCascadeOperationsSpec > test updating parent does not affect children unless changed
GormCriteriaQueriesSpec > test HQL aggregate functions
GormCriteriaQueriesSpec > test HQL group by
GormCriteriaQueriesSpec > test HQL join query
GormCriteriaQueriesSpec > test HQL with named parameters
GormCriteriaQueriesSpec > test HQL with pagination
GormCriteriaQueriesSpec > test HQL with positional parameters
GormCriteriaQueriesSpec > test basic HQL query
GormCriteriaQueriesSpec > test criteria with association
GormCriteriaQueriesSpec > test criteria with association property
GormCriteriaQueriesSpec > test criteria with avg projection
GormCriteriaQueriesSpec > test criteria with between restriction
GormCriteriaQueriesSpec > test criteria with count projection
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: eq

CI / Functional Tests (Java 21, indy=true) > :grails-test-examples-issue-698-domain-save-npe:integrationTest

Test Runs
BookSpecSpec > It works well if there is no validate error in both Java 7 and 8

CI / Functional Tests (Java 21, indy=true) > :grails-test-examples-scaffolding-fields:integrationTest (first 40 of 105)

Test Runs
CrudFunctionalSpec > Can navigate from list to create to list
CrudFunctionalSpec > Can navigate from list to show to edit to show
CrudFunctionalSpec > Create department with valid data succeeds
CrudFunctionalSpec > Create employee with valid data succeeds
CrudFunctionalSpec > Create page displays correctly
CrudFunctionalSpec > Delete removes employee from list
CrudFunctionalSpec > Department list page displays correctly
CrudFunctionalSpec > Edit employee with valid data succeeds
CrudFunctionalSpec > Edit page displays correctly with existing data
CrudFunctionalSpec > Employee list page displays correctly
CrudFunctionalSpec > List page shows create new button
CrudFunctionalSpec > Project list page displays correctly
CrudFunctionalSpec > Show page displays employee details
CrudFunctionalSpec > Show page has edit and delete buttons
CustomTemplatesSpec > custom biography wrapper template is used on create page
FieldTypesSpec > Association select contains existing options
FieldTypesSpec > BelongsTo association renders as select dropdown
FieldTypesSpec > BigDecimal property renders as number input
FieldTypesSpec > Boolean property renders as checkbox
FieldTypesSpec > Byte array property renders as file input
FieldTypesSpec > Currency property renders as select
FieldTypesSpec > Date property renders as date input or text
FieldTypesSpec > Embedded object properties are rendered inline
FieldTypesSpec > Enum property renders as select dropdown
FieldTypesSpec > Enum select contains all enum values
FieldTypesSpec > Field #fieldName is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field active is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field email is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field firstName is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field lastName is present on create form
FieldTypesSpec > Fields have associated labels
FieldTypesSpec > HasMany association renders as multi-select or list
FieldTypesSpec > Integer property renders as number input
FieldTypesSpec > Locale property renders as select
FieldTypesSpec > Property with inList constraint renders as select
FieldTypesSpec > Required fields have visual indicator
FieldTypesSpec > String property renders as text input
FieldTypesSpec > String property with email constraint renders as email input
FieldTypesSpec > String property with widget:textarea renders as textarea
FieldTypesSpec > TimeZone property renders as select

CI / Functional Tests (Java 21, indy=true) > :grails-test-examples-scaffolding:integrationTest

Test Runs
UserCommunityControllerSpec > User list
UserControllerSpec > User list

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-issue-698-domain-save-npe:integrationTest

Test Runs
BookSpecSpec > It works well if there is no validate error in both Java 7 and 8

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-scaffolding-fields:integrationTest (first 40 of 105)

Test Runs
CrudFunctionalSpec > Can navigate from list to create to list
CrudFunctionalSpec > Can navigate from list to show to edit to show
CrudFunctionalSpec > Create department with valid data succeeds
CrudFunctionalSpec > Create employee with valid data succeeds
CrudFunctionalSpec > Create page displays correctly
CrudFunctionalSpec > Delete removes employee from list
CrudFunctionalSpec > Department list page displays correctly
CrudFunctionalSpec > Edit employee with valid data succeeds
CrudFunctionalSpec > Edit page displays correctly with existing data
CrudFunctionalSpec > Employee list page displays correctly
CrudFunctionalSpec > List page shows create new button
CrudFunctionalSpec > Project list page displays correctly
CrudFunctionalSpec > Show page displays employee details
CrudFunctionalSpec > Show page has edit and delete buttons
CustomTemplatesSpec > custom biography wrapper template is used on create page
FieldTypesSpec > Association select contains existing options
FieldTypesSpec > BelongsTo association renders as select dropdown
FieldTypesSpec > BigDecimal property renders as number input
FieldTypesSpec > Boolean property renders as checkbox
FieldTypesSpec > Byte array property renders as file input
FieldTypesSpec > Currency property renders as select
FieldTypesSpec > Date property renders as date input or text
FieldTypesSpec > Embedded object properties are rendered inline
FieldTypesSpec > Enum property renders as select dropdown
FieldTypesSpec > Enum select contains all enum values
FieldTypesSpec > Field #fieldName is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field active is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field email is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field firstName is present on create form
FieldTypesSpec > Field #fieldName is present on create form > Field lastName is present on create form
FieldTypesSpec > Fields have associated labels
FieldTypesSpec > HasMany association renders as multi-select or list
FieldTypesSpec > Integer property renders as number input
FieldTypesSpec > Locale property renders as select
FieldTypesSpec > Property with inList constraint renders as select
FieldTypesSpec > Required fields have visual indicator
FieldTypesSpec > String property renders as text input
FieldTypesSpec > String property with email constraint renders as email input
FieldTypesSpec > String property with widget:textarea renders as textarea
FieldTypesSpec > TimeZone property renders as select

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-scaffolding:integrationTest

Test Runs
UserCommunityControllerSpec > User list
UserControllerSpec > User list

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-views-functional-tests:integrationTest

Test Runs
BookSpec > Object type of list is used for model variable in addition to specified model and var when rendering templates
BookSpec > Object type of list is used for model variable in addition to specified model when rendering templates
BookSpec > Object type of list is used for model variable when rendering templates
BookSpec > Test REST view rendering
CircularSpec > test deep rendering of circular domain relationships
CircularSpec > test nested template rendering of circular domain relationships
CustomerSpec > Test that circular references are correctly rendered for one to many relationship
ProductSpec > test a middle page worth of products
ProductSpec > test a page worth of products
ProductSpec > testEmptyProducts
ProductSpec > testSingleProduct
ProjectSpec > Test that circular references are correctly rendered for many to many relationship
ProxySpec > Test template is found for proxy instance that is initialized
TeamSpec > Test HAL rendering
TeamSpec > Test association template rendering
TeamSpec > Test composite ID rendering
TeamSpec > Test deep association template rendering
VehicleSpec > Test that domain association subclasses render their properties
VehicleSpec > Test that domain subclasses render their properties

🏷️ Commit: 465c3bd
▶️ Tests: 3617 executed
🟡 Checks: 27/33 completed

Test Failures (first 10 of 843)

AbstractParentSpec > Test that persisting a domain class with an abstract parent works (:grails-test-examples-gorm:integrationTest in CI / Functional Tests (Java 21, indy=false))
java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@26450242 testClass = gorm.AbstractParentSpec, locations = [], classes = [gorm.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@11d2dd2d, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@12d2ddde, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@718fd7c1, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@2f31c907], 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.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:277)
	at org.spockframework.spring.SpringTestContext.getApplicationContext(SpringTestContext.java:49)
	at org.spockframework.spring.SpringMockTestExecutionListener.injectSpies(SpringMockTestExecutionListener.java:66)
	at org.spockframework.spring.SpringMockTestExecutionListener.prepareTestInstance(SpringMockTestExecutionListener.java:62)
	at org.spockframework.spring.AbstractSpringTestExecutionListener.prepareTestInstance(AbstractSpringTestExecutionListener.java:32)
	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:139)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: java.lang.IllegalStateException: No PlatformTransactionManager set
	at org.springframework.util.Assert.state(Assert.java:80)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:115)
	at org.grails.datastore.gorm.GormStaticApi.withTransaction(GormStaticApi.groovy:642)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.withTransaction(GormEntity.groovy:1049)
	at gorm.BootStrap$_closure1.doCall(BootStrap.groovy:25)
	at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.groovy:572)
	at grails.util.Environment.executeForEnvironment(Environment.groovy:565)
	at grails.util.Environment.executeForCurrentEnvironment(Environment.groovy:541)
	at org.grails.web.servlet.boostrap.DefaultGrailsBootstrapClass.callInit(DefaultGrailsBootstrapClass.java:71)
	at org.grails.web.servlet.context.GrailsConfigUtils.executeGrailsBootstraps(GrailsConfigUtils.java:74)
	at org.grails.plugins.web.servlet.context.BootStrapClassRunner.onStartup(BootStrapClassRunner.groovy:59)
	at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:293)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:448)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1016)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)
	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:111)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:421)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:410)
	at gorm.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
BindingOutsideRequestSpec > Save nested company nested with webrequest (:grails-test-examples-gorm:integrationTest in CI / Functional Tests (Java 21, indy=false))
java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [WebMergedContextConfiguration@42dc92de testClass = gorm.BindingOutsideRequestSpec, locations = [], classes = [gorm.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@11d2dd2d, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@12d2ddde, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@718fd7c1, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@2f31c907], resourceBasePath = "src/main/webapp", contextLoader = grails.boot.test.GrailsApplicationContextLoader, parent = null]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:157)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:128)
	at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:277)
	at org.spockframework.spring.SpringTestContext.getApplicationContext(SpringTestContext.java:49)
	at org.spockframework.spring.SpringMockTestExecutionListener.injectSpies(SpringMockTestExecutionListener.java:66)
	at org.spockframework.spring.SpringMockTestExecutionListener.prepareTestInstance(SpringMockTestExecutionListener.java:62)
	at org.spockframework.spring.AbstractSpringTestExecutionListener.prepareTestInstance(AbstractSpringTestExecutionListener.java:32)
	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:139)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
BindingOutsideRequestSpec > Save nested company without webrequest (Quartz/Bpotstrap) (:grails-test-examples-gorm:integrationTest in CI / Functional Tests (Java 21, indy=false))
java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [WebMergedContextConfiguration@42dc92de testClass = gorm.BindingOutsideRequestSpec, locations = [], classes = [gorm.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@11d2dd2d, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@12d2ddde, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@718fd7c1, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@2f31c907], resourceBasePath = "src/main/webapp", contextLoader = grails.boot.test.GrailsApplicationContextLoader, parent = null]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:157)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:128)
	at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:277)
	at org.spockframework.spring.SpringTestContext.getApplicationContext(SpringTestContext.java:49)
	at org.spockframework.spring.SpringMockTestExecutionListener.injectSpies(SpringMockTestExecutionListener.java:66)
	at org.spockframework.spring.SpringMockTestExecutionListener.prepareTestInstance(SpringMockTestExecutionListener.java:62)
	at org.spockframework.spring.AbstractSpringTestExecutionListener.prepareTestInstance(AbstractSpringTestExecutionListener.java:32)
	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:139)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
BookSpec > Object type of list is used for model variable in addition to specified model and var when rendering templates (:grails-test-examples-views-functional-tests:integrationTest in CI / Functional Tests (Java 21, indy=false))
Condition failed with Exception:

response.assertJson(200, 'Content-Type': 'application/json;charset=UTF-8', ''' [ { "title": "The Changeling", "value": true } ] ''')
|        |
|        org.opentest4j.AssertionFailedError: HTTP Status differs
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
|        	at functional.tests.BookSpec.Object type of list is used for model variable in addition to specified model and var when rendering templates(BookSpec.groovy:193)
<org.apache.grails.testing.http.client.TestHttpResponse@20099dbd delegate=(GET http://localhost:44609/books/listCallsTmplVar) 500 jsonSlurperConfig=org.apache.grails.testing.http.client.utils.JsonUtils$SlurperConfig(null, null, null, null, null) xmlSlurperConfig=org.apache.grails.testing.http.client.utils.XmlUtils$SlurperConfig@4457ce9>

	at functional.tests.BookSpec.Object type of list is used for model variable in addition to specified model and var when rendering templates(BookSpec.groovy:193)
Caused by: org.opentest4j.AssertionFailedError: HTTP Status differs
	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
	... 1 more
BookSpec > Object type of list is used for model variable in addition to specified model when rendering templates (:grails-test-examples-views-functional-tests:integrationTest in CI / Functional Tests (Java 21, indy=false))
Condition failed with Exception:

response.assertJson(200, 'Content-Type': 'application/json;charset=UTF-8', ''' [ { "title": "The Changeling", "value": true } ] ''')
|        |
|        org.opentest4j.AssertionFailedError: HTTP Status differs
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
|        	at functional.tests.BookSpec.Object type of list is used for model variable in addition to specified model when rendering templates(BookSpec.groovy:178)
<org.apache.grails.testing.http.client.TestHttpResponse@3bb35082 delegate=(GET http://localhost:44609/books/listCallsTmplExtraData) 500 jsonSlurperConfig=org.apache.grails.testing.http.client.utils.JsonUtils$SlurperConfig(null, null, null, null, null) xmlSlurperConfig=org.apache.grails.testing.http.client.utils.XmlUtils$SlurperConfig@72e4f58f>

	at functional.tests.BookSpec.Object type of list is used for model variable in addition to specified model when rendering templates(BookSpec.groovy:178)
Caused by: org.opentest4j.AssertionFailedError: HTTP Status differs
	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
	... 1 more
BookSpec > Object type of list is used for model variable when rendering templates (:grails-test-examples-views-functional-tests:integrationTest in CI / Functional Tests (Java 21, indy=false))
Condition failed with Exception:

response.assertJson(200, 'Content-Type': 'application/json;charset=UTF-8', ''' [ { "title": "The Changeling" } ] ''')
|        |
|        org.opentest4j.AssertionFailedError: HTTP Status differs
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
|        	at functional.tests.BookSpec.Object type of list is used for model variable when rendering templates(BookSpec.groovy:164)
<org.apache.grails.testing.http.client.TestHttpResponse@4e1b36e6 delegate=(GET http://localhost:44609/books/listCallsTmpl) 500 jsonSlurperConfig=org.apache.grails.testing.http.client.utils.JsonUtils$SlurperConfig(null, null, null, null, null) xmlSlurperConfig=org.apache.grails.testing.http.client.utils.XmlUtils$SlurperConfig@35d518a7>

	at functional.tests.BookSpec.Object type of list is used for model variable when rendering templates(BookSpec.groovy:164)
Caused by: org.opentest4j.AssertionFailedError: HTTP Status differs
	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
	... 1 more
BookSpec > Test REST view rendering (:grails-test-examples-views-functional-tests:integrationTest in CI / Functional Tests (Java 21, indy=false))
Condition failed with Exception:

response.assertJson(200, 'Content-Type': 'application/json;charset=UTF-8', '[]')
|        |
|        org.opentest4j.AssertionFailedError: HTTP Status differs
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
|        	at functional.tests.BookSpec.Test REST view rendering(BookSpec.groovy:54)
<org.apache.grails.testing.http.client.TestHttpResponse@1e22ff5f delegate=(GET http://localhost:44609/books) 500 jsonSlurperConfig=org.apache.grails.testing.http.client.utils.JsonUtils$SlurperConfig(null, null, null, null, null) xmlSlurperConfig=org.apache.grails.testing.http.client.utils.XmlUtils$SlurperConfig@7ce6c004>

	at functional.tests.BookSpec.Test REST view rendering(BookSpec.groovy:54)
Caused by: org.opentest4j.AssertionFailedError: HTTP Status differs
	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
	at org.apache.grails.testing.http.client.TestHttpResponse.assertJson(TestHttpResponse.groovy:441)
	... 1 more
BookSpec > Test dynamic finders work (:grails-test-examples-gorm:integrationTest in CI / Functional Tests (Java 21, indy=false))
java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [WebMergedContextConfiguration@3a843387 testClass = gorm.BookSpec, locations = [], classes = [gorm.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@11d2dd2d, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@12d2ddde, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@718fd7c1, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@2f31c907], resourceBasePath = "src/main/webapp", contextLoader = grails.boot.test.GrailsApplicationContextLoader, parent = null]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:157)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:128)
	at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:277)
	at org.spockframework.spring.SpringTestContext.getApplicationContext(SpringTestContext.java:49)
	at org.spockframework.spring.SpringMockTestExecutionListener.injectSpies(SpringMockTestExecutionListener.java:66)
	at org.spockframework.spring.SpringMockTestExecutionListener.prepareTestInstance(SpringMockTestExecutionListener.java:62)
	at org.spockframework.spring.AbstractSpringTestExecutionListener.prepareTestInstance(AbstractSpringTestExecutionListener.java:32)
	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:139)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
BookSpecSpec > It works well if there is no validate error in both Java 7 and 8 (:grails-test-examples-issue-698-domain-save-npe:integrationTest in CI / Functional Tests (Java 21, indy=false))
Condition failed with Exception:

Book.count() == 1
|    |
|    java.lang.NullPointerException: Cannot invoke "org.grails.orm.hibernate.HibernateDatastore.getHibernateTemplate()" because the return value of "org.grails.orm.hibernate.AbstractHibernateGormStaticApi.getHibernateDatastore()" is null
|    	at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.getHibernateTemplate(AbstractHibernateGormStaticApi.groovy:91)
|    	at org.grails.orm.hibernate.HibernateGormStaticApi.getHibernateTemplate(HibernateGormStaticApi.groovy:108)
|    	at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
|    	at org.grails.datastore.gorm.GormEntity$Trait$Helper.count(GormEntity.groovy:724)
|    	at grails301.domain.save.npe.BookSpecSpec.$tt__$spock_feature_0_0(BookSpecSpec.groovy:38)
|    	at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:79)
|    	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
|    	at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:73)
class grails301.domain.save.npe.Book

	at grails301.domain.save.npe.BookSpecSpec.$tt__$spock_feature_0_0(BookSpecSpec.groovy:38)
	at grails301.domain.save.npe.BookSpecSpec.It works well if there is no validate error in both Java 7 and 8_closure1(BookSpecSpec.groovy)
	at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:79)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
	at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:73)
	at grails301.domain.save.npe.BookSpecSpec.It works well if there is no validate error in both Java 7 and 8(BookSpecSpec.groovy)
Caused by: java.lang.NullPointerException: Cannot invoke "org.grails.orm.hibernate.HibernateDatastore.getHibernateTemplate()" because the return value of "org.grails.orm.hibernate.AbstractHibernateGormStaticApi.getHibernateDatastore()" is null
	at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.getHibernateTemplate(AbstractHibernateGormStaticApi.groovy:91)
	at org.grails.orm.hibernate.HibernateGormStaticApi.getHibernateTemplate(HibernateGormStaticApi.groovy:108)
	at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.count(GormEntity.groovy:724)
	at grails301.domain.save.npe.BookSpecSpec.$tt__$spock_feature_0_0(BookSpecSpec.groovy:38)
	at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:79)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
	at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:73)
CircularSpec > test deep rendering of circular domain relationships (:grails-test-examples-views-functional-tests:integrationTest in CI / Functional Tests (Java 21, indy=false))
Condition failed with Exception:

response.assertHeaders(200, 'Content-Type': 'application/json;charset=UTF-8')
|        |
|        org.opentest4j.AssertionFailedError: HTTP Status differs
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
|        	at org.apache.grails.testing.http.client.TestHttpResponse.assertHeaders(TestHttpResponse.groovy:295)
|        	at functional.tests.CircularSpec.test deep rendering of circular domain relationships(CircularSpec.groovy:36)
<org.apache.grails.testing.http.client.TestHttpResponse@5b8b3edb delegate=(GET http://localhost:44609/circular/show/1) 500 jsonSlurperConfig=org.apache.grails.testing.http.client.utils.JsonUtils$SlurperConfig(null, null, null, null, null) xmlSlurperConfig=org.apache.grails.testing.http.client.utils.XmlUtils$SlurperConfig@653703a4>

	at functional.tests.CircularSpec.test deep rendering of circular domain relationships(CircularSpec.groovy:36)
Caused by: org.opentest4j.AssertionFailedError: HTTP Status differs
	at org.apache.grails.testing.http.client.TestHttpResponse.verify(TestHttpResponse.groovy:980)
	at org.apache.grails.testing.http.client.TestHttpResponse.verifyStatus(TestHttpResponse.groovy:840)
	at org.apache.grails.testing.http.client.TestHttpResponse.assertHeaders(TestHttpResponse.groovy:295)
	... 1 more

Muted Tests (first 20 of 843)

Note

Checks are currently running using the configuration below.

Select tests to mute in this pull request:

🔲 AbstractParentSpec > Test that persisting a domain class with an abstract parent works
🔲 BindingOutsideRequestSpec > Save nested company nested with webrequest
🔲 BindingOutsideRequestSpec > Save nested company without webrequest (Quartz/Bpotstrap)
🔲 BookSpec > Object type of list is used for model variable in addition to specified model and var when rendering templates
🔲 BookSpec > Object type of list is used for model variable in addition to specified model when rendering templates
🔲 BookSpec > Object type of list is used for model variable when rendering templates
🔲 BookSpec > Test REST view rendering
🔲 BookSpec > Test dynamic finders work
🔲 BookSpecSpec > It works well if there is no validate error in both Java 7 and 8
🔲 CircularSpec > test deep rendering of circular domain relationships
🔲 CircularSpec > test nested template rendering of circular domain relationships
🔲 CrossDatasourceTransactionSpec > REQUIRES_NEW creates independent transaction
🔲 CrossDatasourceTransactionSpec > chained transaction manager coordinates transactions across datasources
🔲 CrossDatasourceTransactionSpec > count operations are datasource-specific
🔲 CrossDatasourceTransactionSpec > detached objects can be reattached in different transactions
🔲 CrossDatasourceTransactionSpec > error in primary datasource does not affect already-committed secondary
🔲 CrossDatasourceTransactionSpec > error in secondary datasource can be caught without affecting primary
🔲 CrossDatasourceTransactionSpec > flush mode can be controlled within session
🔲 CrossDatasourceTransactionSpec > nested transactions work correctly
🔲 CrossDatasourceTransactionSpec > operations on both datasources within single test method

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant