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

borinquenkid pushed a commit to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 1105715f34df2cef0580f8b3742deeb7f0c700d2
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Thu Feb 26 08:48:02 2026 -0600

    Fix PMD violations in GrailsHibernateQueryUtils
---
 grails-data-hibernate7/core/PMD.md                 | 22 ++---
 .../hibernate/query/GrailsHibernateQueryUtils.java | 95 ++++++++++------------
 2 files changed, 55 insertions(+), 62 deletions(-)

diff --git a/grails-data-hibernate7/core/PMD.md 
b/grails-data-hibernate7/core/PMD.md
index c24691b662..4f5a916a29 100644
--- a/grails-data-hibernate7/core/PMD.md
+++ b/grails-data-hibernate7/core/PMD.md
@@ -243,17 +243,17 @@ 
DataflowAnomalyAnalysis,org.grails.orm.hibernate.multitenancy.MultiTenantEventLi
 
DataflowAnomalyAnalysis,org.grails.orm.hibernate.multitenancy.MultiTenantEventListener,79,YES
 
CompareObjectsWithEquals,org.grails.orm.hibernate.multitenancy.MultiTenantEventListener,93,YES
 CloseResource,org.grails.orm.hibernate.proxy.HibernateProxyHandler,155,YES
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,68,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,84,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,84,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,87,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,138,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,139,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,201,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,214,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,252,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,252,
-DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,252,
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,68,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,84,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,84,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,87,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,138,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,139,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,201,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,214,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,252,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,252,YES
+DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,252,YES
 AvoidDuplicateLiterals,org.grails.orm.hibernate.query.HibernateHqlQuery,67,
 AvoidDuplicateLiterals,org.grails.orm.hibernate.query.HibernateHqlQuery,84,
 DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.HibernateQuery,336,
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
index ed7d931c33..f9712d1172 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
@@ -47,6 +47,7 @@ import org.springframework.core.convert.ConversionService;
  * @author Graeme Rocher
  * @since 4.0
  */
+@SuppressWarnings("PMD.DataflowAnomalyAnalysis")
 public class GrailsHibernateQueryUtils {
 
   /**
@@ -63,31 +64,26 @@ public class GrailsHibernateQueryUtils {
       Root queryRoot,
       CriteriaBuilder criteriaBuilder,
       Map argMap,
-      ConversionService conversionService,
-      boolean useDefaultMapping) {
-    String orderParam = (String) argMap.get(DynamicFinder.ARGUMENT_ORDER);
-    Object fetchObj = argMap.get(DynamicFinder.ARGUMENT_FETCH);
-    if (fetchObj instanceof Map) {
-      Map fetch = (Map) fetchObj;
-      for (Object o : fetch.keySet()) {
-        String associationName = (String) o;
-
-        final FetchMode fetchMode = getFetchMode(fetch.get(associationName));
-        if (fetchMode == FetchMode.JOIN) {
-          queryRoot.join(associationName);
-        }
-      }
-    }
-
-    final Object sortObj = argMap.get(DynamicFinder.ARGUMENT_SORT);
-    if (sortObj != null) {
-      boolean ignoreCase = true;
-      Object caseArg = argMap.get(DynamicFinder.ARGUMENT_IGNORE_CASE);
-      if (caseArg instanceof Boolean) {
-        ignoreCase = (Boolean) caseArg;
-      }
-      if (sortObj instanceof Map) {
-        Map sortMap = (Map) sortObj;
+              ConversionService conversionService,
+              boolean useDefaultMapping) {
+            Object fetchObj = argMap.get(DynamicFinder.ARGUMENT_FETCH);
+            if (fetchObj instanceof Map) {
+              Map fetch = (Map) fetchObj;
+              for (Object o : fetch.keySet()) {
+                String associationName = (String) o;
+      
+                final FetchMode fetchMode = 
getFetchMode(fetch.get(associationName));
+                if (fetchMode == FetchMode.JOIN) {
+                  queryRoot.join(associationName);
+                }
+              }
+            }
+      
+            final Object sortObj = argMap.get(DynamicFinder.ARGUMENT_SORT);
+            if (sortObj != null) {
+              final boolean ignoreCase =
+                  !(argMap.get(DynamicFinder.ARGUMENT_IGNORE_CASE) instanceof 
Boolean b) || b;
+              if (sortObj instanceof Map) {        Map sortMap = (Map) sortObj;
         for (Object sort : sortMap.keySet()) {
           final String order =
               DynamicFinder.ORDER_DESC.equalsIgnoreCase((String) 
sortMap.get(sort))
@@ -96,15 +92,14 @@ public class GrailsHibernateQueryUtils {
           addOrderPossiblyNested(
               query, queryRoot, criteriaBuilder, entity, (String) sort, order, 
ignoreCase);
         }
-      } else {
-        final String sort = (String) sortObj;
-        final String order =
-            DynamicFinder.ORDER_DESC.equalsIgnoreCase(orderParam)
-                ? DynamicFinder.ORDER_DESC
-                : DynamicFinder.ORDER_ASC;
-        addOrderPossiblyNested(query, queryRoot, criteriaBuilder, entity, 
sort, order, ignoreCase);
-      }
-    } else if (useDefaultMapping) {
+              } else {
+                final String sort = (String) sortObj;
+                final String order =
+                    DynamicFinder.ORDER_DESC.equalsIgnoreCase((String) 
argMap.get(DynamicFinder.ARGUMENT_ORDER))
+                        ? DynamicFinder.ORDER_DESC
+                        : DynamicFinder.ORDER_ASC;
+                addOrderPossiblyNested(query, queryRoot, criteriaBuilder, 
entity, sort, order, ignoreCase);
+              }    } else if (useDefaultMapping) {
       Class<?> theClass = entity.getJavaClass();
       Mapping m = MappingCacheHolder.getInstance().getMapping(theClass);
       if (m != null) {
@@ -129,23 +124,21 @@ public class GrailsHibernateQueryUtils {
    * @param argMap The arguments map
    */
   @SuppressWarnings("rawtypes")
-  public static void populateArgumentsForCriteria(
-      PersistentEntity entity,
-      Query query,
-      Map argMap,
-      ConversionService conversionService,
-      boolean useDefaultMapping) {
-    Integer maxParam = null;
-    Integer offsetParam = null;
-    if (argMap.containsKey(DynamicFinder.ARGUMENT_MAX)) {
-      maxParam = 
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_MAX), 
Integer.class);
-    }
-    if (argMap.containsKey(DynamicFinder.ARGUMENT_OFFSET)) {
-      offsetParam =
-          conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_OFFSET), 
Integer.class);
-    }
-    if (argMap.containsKey(DynamicFinder.ARGUMENT_FETCH_SIZE)) {
-      query.setFetchSize(
+      public static void populateArgumentsForCriteria(
+          PersistentEntity entity,
+          Query query,
+          Map argMap,
+          ConversionService conversionService,
+          boolean useDefaultMapping) {
+        final Integer maxParam =
+            argMap.containsKey(DynamicFinder.ARGUMENT_MAX)
+                ? 
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_MAX), Integer.class)
+                : null;
+        final Integer offsetParam =
+            argMap.containsKey(DynamicFinder.ARGUMENT_OFFSET)
+                ? 
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_OFFSET), 
Integer.class)
+                : null;
+        if (argMap.containsKey(DynamicFinder.ARGUMENT_FETCH_SIZE)) {      
query.setFetchSize(
           
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_FETCH_SIZE), 
Integer.class));
     }
     if (argMap.containsKey(DynamicFinder.ARGUMENT_TIMEOUT)) {

Reply via email to