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 96e7eb86a89024b3c1d2a5e36edd45d17a347ace Author: Walter Duque de Estrada <[email protected]> AuthorDate: Fri Feb 27 08:33:07 2026 -0600 Fix PMD issues in OrderByClauseBuilder --- grails-data-hibernate7/PMD.md | 10 +++++----- .../hibernate/cfg/domainbinding/util/OrderByClauseBuilder.java | 6 ++++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/grails-data-hibernate7/PMD.md b/grails-data-hibernate7/PMD.md index 7b1341b9e4..706ea7301d 100644 --- a/grails-data-hibernate7/PMD.md +++ b/grails-data-hibernate7/PMD.md @@ -74,11 +74,11 @@ DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.ForeignK DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.ForeignKeyColumnCountCalculator,38,YES DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.ForeignKeyColumnCountCalculator,41,YES LoggerIsNotStaticFinal,org.grails.orm.hibernate.cfg.domainbinding.util.LogCascadeMapping,30,YES -DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,57, -UseLocaleWithCaseConversions,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,68, -DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,95, -DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,96, -CompareObjectsWithEquals,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,106, +DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,57,YES +UseLocaleWithCaseConversions,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,68,YES +DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,95,YES +DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,96,YES +CompareObjectsWithEquals,org.grails.orm.hibernate.cfg.domainbinding.util.OrderByClauseBuilder,106,YES DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.TableForManyCalculator,56, DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.TableForManyCalculator,59, DataflowAnomalyAnalysis,org.grails.orm.hibernate.cfg.domainbinding.util.TableForManyCalculator,61, diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/OrderByClauseBuilder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/OrderByClauseBuilder.java index 4001e52919..6303bc814b 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/OrderByClauseBuilder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/OrderByClauseBuilder.java @@ -20,6 +20,7 @@ package org.grails.orm.hibernate.cfg.domainbinding.util; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import org.grails.datastore.mapping.model.DatastoreConfigurationException; @@ -30,6 +31,7 @@ import org.hibernate.mapping.Selectable; import org.hibernate.mapping.SingleTableSubclass; /** Utility class to build SQL order by clauses from HQL-style order by strings. */ +@SuppressWarnings("PMD.DataflowAnomalyAnalysis") public class OrderByClauseBuilder { public String buildOrderByClause( @@ -65,7 +67,7 @@ public class OrderByClauseBuilder { throw new DatastoreConfigurationException( "Error while parsing sort clause: " + hqlOrderBy + " (" + role + ")"); } - currentEntry.direction = token.toLowerCase(); + currentEntry.direction = token.toLowerCase(Locale.ROOT); } else { if (currentEntry != null && currentEntry.direction == null) { currentEntry.direction = "asc"; @@ -103,7 +105,7 @@ public class OrderByClauseBuilder { private String getTablePrefix(Property p, PersistentClass associatedClass) { PersistentClass pc = p.getPersistentClass(); if (pc == null - || pc == associatedClass + || pc.equals(associatedClass) || (associatedClass instanceof SingleTableSubclass && pc.getMappedClass().isAssignableFrom(associatedClass.getMappedClass()))) { return "";
