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

borinquenkid pushed a commit to branch test/document-datamapping-core-finders
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit e4ace7700d1184e0088462b759ab797f5ac63187
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sat Aug 15 16:10:41 2026 -0500

    Deduplicate the identity-property fallback in MethodExpression
    
    convertArguments and convertArgumentsForProp each had their own copy
    of "fall back to the identity property when getPropertyByName returns
    null" - extract a shared resolveProperty helper instead. This also
    lets convertArgumentsForProp drop its now-unused PersistentEntity/
    propertyName parameters, and removes NotInList#convertArguments'
    redundant self-assigned locals along the way.
    
    Co-Authored-By: Claude Sonnet 5 <[email protected]>
---
 .../datastore/gorm/finders/MethodExpression.java   | 39 +++++++++++-----------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git 
a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/MethodExpression.java
 
b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/MethodExpression.java
index 7c67a91de4..c580720aea 100644
--- 
a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/MethodExpression.java
+++ 
b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/MethodExpression.java
@@ -74,13 +74,7 @@ public abstract class MethodExpression {
     public void convertArguments(PersistentEntity persistentEntity) {
         ConversionService conversionService = persistentEntity
                 .getMappingContext().getConversionService();
-        PersistentProperty<?> prop = persistentEntity
-                .getPropertyByName(propertyName);
-        if (prop == null) {
-            if (propertyName.equals(persistentEntity.getIdentity().getName())) 
{
-                prop = persistentEntity.getIdentity();
-            }
-        }
+        PersistentProperty<?> prop = resolveProperty(persistentEntity, 
propertyName);
         if (prop != null && arguments != null && argumentsRequired > 0) {
             Class<?> type = prop.getType();
             for (int i = 0; i < argumentsRequired; i++) {
@@ -260,11 +254,8 @@ public abstract class MethodExpression {
         public void convertArguments(PersistentEntity persistentEntity) {
             ConversionService conversionService = persistentEntity
                     .getMappingContext().getConversionService();
-            String propertyName = this.propertyName;
-            PersistentProperty<?> prop = persistentEntity
-                    .getPropertyByName(propertyName);
-            Object[] arguments = this.arguments;
-            convertArgumentsForProp(persistentEntity, prop, propertyName, 
arguments, conversionService);
+            PersistentProperty<?> prop = resolveProperty(persistentEntity, 
propertyName);
+            convertArgumentsForProp(prop, arguments, conversionService);
         }
     }
 
@@ -299,9 +290,8 @@ public abstract class MethodExpression {
         public void convertArguments(PersistentEntity persistentEntity) {
             ConversionService conversionService = persistentEntity
                     .getMappingContext().getConversionService();
-            PersistentProperty<?> prop = persistentEntity
-                    .getPropertyByName(propertyName);
-            convertArgumentsForProp(persistentEntity, prop, propertyName, 
arguments, conversionService);
+            PersistentProperty<?> prop = resolveProperty(persistentEntity, 
propertyName);
+            convertArgumentsForProp(prop, arguments, conversionService);
         }
 
     }
@@ -498,12 +488,21 @@ public abstract class MethodExpression {
 
     }
 
-    private static void convertArgumentsForProp(PersistentEntity 
persistentEntity, PersistentProperty<?> prop, String propertyName, Object[] 
arguments, ConversionService conversionService) {
-        if (prop == null) {
-            if (propertyName.equals(persistentEntity.getIdentity().getName())) 
{
-                prop = persistentEntity.getIdentity();
-            }
+    /**
+     * Resolves the given property name against the entity, falling back to 
the identity property
+     * when there is no regular property by that name (e.g. {@code 
findByIdInList}). Shared by the
+     * base {@link #convertArguments} and {@link #convertArgumentsForProp} so 
the fallback exists in
+     * exactly one place.
+     */
+    private static PersistentProperty<?> resolveProperty(PersistentEntity 
persistentEntity, String propertyName) {
+        PersistentProperty<?> prop = 
persistentEntity.getPropertyByName(propertyName);
+        if (prop == null && 
propertyName.equals(persistentEntity.getIdentity().getName())) {
+            return persistentEntity.getIdentity();
         }
+        return prop;
+    }
+
+    private static void convertArgumentsForProp(PersistentProperty<?> prop, 
Object[] arguments, ConversionService conversionService) {
         if (prop != null) {
             Class<?> type = prop.getType();
             Collection<?> collection = (Collection<?>) arguments[0];

Reply via email to