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)) {
