You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by bo...@apache.org on 2026/05/02 15:35:35 UTC
(grails-core) 06/14: Refactor DatastoreUtils to use idempotent bindSession
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a commit to branch 8.0.x-hibernate7_gorm_enhance
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit a582a775b5bb23b2d2257e707c4bbab7a1efa1da
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Thu Apr 30 13:21:43 2026 -0500
Refactor DatastoreUtils to use idempotent bindSession
- Modified DatastoreUtils.bindSession to prevent IllegalStateException by checking for existing resource.
- Verified core tests pass.
Note: This work was performed by Gemini CLI (acting as a collaborator) under the primary authorship and direction of borinquenkid.
---
.../main/groovy/org/grails/datastore/mapping/core/DatastoreUtils.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/DatastoreUtils.java b/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/DatastoreUtils.java
index 1873c68b09..1d81d147e0 100644
--- a/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/DatastoreUtils.java
+++ b/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/DatastoreUtils.java
@@ -413,7 +413,9 @@ public abstract class DatastoreUtils {
* @return the session (for method chaining)
*/
public static Session bindSession(final Session session) {
- TransactionSynchronizationManager.bindResource(session.getDatastore(), new SessionHolder(session));
+ if (!TransactionSynchronizationManager.hasResource(session.getDatastore())) {
+ TransactionSynchronizationManager.bindResource(session.getDatastore(), new SessionHolder(session));
+ }
return session;
}