This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch test/abstract-datastore-initializer
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 4d44c4a60bb47088512862affbd09a61f06fd900
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Thu Aug 13 15:57:08 2026 -0500

    Fix defaultDataSourceBeanName being hardcoded around instead of used
    
    Same bug class as the mongoBeanName fix: configureDataSources() correctly
    used defaultDataSourceBeanName in its null-config fallback, but hardcoded
    the literal ConnectionSource.DEFAULT in the config-present branch (and, on
    Hibernate7, in the per-datasource bean-registration loop guard too). No
    current caller customizes this property, so today's behavior is
    unaffected, but the property is now internally consistent wherever it's
    referenced.
    
    Co-Authored-By: Claude Sonnet 5 <[email protected]>
---
 .../bootstrap/HibernateDatastoreSpringInitializer.groovy    |  2 +-
 .../HibernateDatastoreSpringInitializerSpec.groovy          | 12 ++++++++++++
 .../bootstrap/HibernateDatastoreSpringInitializer.groovy    |  4 ++--
 .../HibernateDatastoreSpringInitializerSpec.groovy          | 13 +++++++++++++
 4 files changed, 28 insertions(+), 3 deletions(-)

diff --git 
a/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
 
b/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
index 0f36a69057..9342779524 100644
--- 
a/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
+++ 
b/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
@@ -97,7 +97,7 @@ class HibernateDatastoreSpringInitializer extends 
AbstractDatastoreInitializer {
             }
             Map dataSource = (Map) 
config.getProperty(DEFAULT_DATA_SOURCE_NAME, Map, Collections.emptyMap())
             if (dataSource != null && !dataSource.isEmpty()) {
-                dataSourceNames.add(ConnectionSource.DEFAULT)
+                dataSourceNames.add(defaultDataSourceBeanName)
             }
         }
         this.dataSources = dataSourceNames
diff --git 
a/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
 
b/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
index bd37fd7fe6..760171dfbf 100644
--- 
a/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
+++ 
b/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
@@ -103,6 +103,18 @@ class HibernateDatastoreSpringInitializerSpec extends 
Specification{
 
     }
 
+    void "Test configureDataSources uses the customized default data source 
bean name consistently"() {
+        given: "an initializer with a customized default data source bean name"
+        def datastoreInitializer = new 
HibernateDatastoreSpringInitializer([:], Person)
+        datastoreInitializer.defaultDataSourceBeanName = 'primary'
+
+        when: "data sources are configured from a resolver with only the 
default data source present"
+        
datastoreInitializer.configureDataSources(DatastoreUtils.createPropertyResolver(['dataSource.url':
 'jdbc:h2:mem:customDefaultDsName;LOCK_TIMEOUT=10000']))
+
+        then: "the default entry is recorded under the custom name, not the 
literal ConnectionSource.DEFAULT"
+        datastoreInitializer.dataSources == ['primary'] as Set<String>
+    }
+
     void "Test the Map/Collection<Class> constructor bootstraps GORM"() {
         given: "An initializer built from a Collection of persistent classes"
         def datastoreInitializer = new HibernateDatastoreSpringInitializer(
diff --git 
a/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
 
b/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
index 327729e083..2f0b4221ba 100644
--- 
a/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
+++ 
b/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy
@@ -101,7 +101,7 @@ class HibernateDatastoreSpringInitializer extends 
AbstractDatastoreInitializer {
             }
             Map dataSource = (Map) 
config.getProperty(DEFAULT_DATA_SOURCE_NAME, Map, Collections.emptyMap())
             if (dataSource != null && !dataSource.isEmpty()) {
-                dataSourceNames.add(ConnectionSource.DEFAULT)
+                dataSourceNames.add(defaultDataSourceBeanName)
             }
         }
         this.dataSources = dataSourceNames
@@ -182,7 +182,7 @@ class HibernateDatastoreSpringInitializer extends 
AbstractDatastoreInitializer {
             getBeanDefinition('transactionManager').beanClass = 
PlatformTransactionManager
 
             for (String dataSourceName in dataSources) {
-                if (dataSourceName == ConnectionSource.DEFAULT) continue
+                if (dataSourceName == defaultDataSourceBeanName) continue
 
                 "dataSource_$dataSourceName"(hibernateDatastore: 
'getDataSource', dataSourceName)
                 "sessionFactory_$dataSourceName"(hibernateDatastore: 
'getSessionFactory', dataSourceName)
diff --git 
a/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
 
b/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
index 8fbeeb238a..f8a68aedee 100644
--- 
a/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
+++ 
b/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy
@@ -19,6 +19,7 @@
 package grails.orm.bootstrap
 
 import grails.gorm.annotation.Entity
+import org.grails.datastore.mapping.core.DatastoreUtils
 import org.grails.orm.hibernate.HibernateDatastore
 import org.hibernate.Session
 import org.hibernate.SessionFactory
@@ -100,6 +101,18 @@ class HibernateDatastoreSpringInitializerSpec extends 
Specification{
         }
     }
 
+    void "Test configureDataSources uses the customized default data source 
bean name consistently"() {
+        given: "an initializer with a customized default data source bean name"
+        def datastoreInitializer = new 
HibernateDatastoreSpringInitializer([:], Person)
+        datastoreInitializer.defaultDataSourceBeanName = 'primary'
+
+        when: "data sources are configured from a resolver with only the 
default data source present"
+        
datastoreInitializer.configureDataSources(DatastoreUtils.createPropertyResolver(['dataSource.url':
 'jdbc:h2:mem:customDefaultDsName;LOCK_TIMEOUT=10000']))
+
+        then: "the default entry is recorded under the custom name, not the 
literal ConnectionSource.DEFAULT"
+        datastoreInitializer.dataSources == ['primary'] as Set<String>
+    }
+
     void "Test the Map/Collection<Class> constructor bootstraps GORM"() {
         given: "An initializer built from a Collection of persistent classes"
         def datastoreInitializer = new HibernateDatastoreSpringInitializer(

Reply via email to