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 da141f246005d80984e0c346cc00c1db61133c9e Author: Walter Duque de Estrada <[email protected]> AuthorDate: Thu Feb 26 09:35:07 2026 -0600 Fix PMD violations in HibernateQuery --- grails-data-hibernate7/core/PMD.md | 8 ++-- .../grails/orm/hibernate/query/HibernateQuery.java | 46 +++++++++++----------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/grails-data-hibernate7/core/PMD.md b/grails-data-hibernate7/core/PMD.md index 6b8601906f..c640ce10dd 100644 --- a/grails-data-hibernate7/core/PMD.md +++ b/grails-data-hibernate7/core/PMD.md @@ -256,10 +256,10 @@ DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,252,YES AvoidDuplicateLiterals,org.grails.orm.hibernate.query.HibernateHqlQuery,67,YES AvoidDuplicateLiterals,org.grails.orm.hibernate.query.HibernateHqlQuery,84,YES -DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.HibernateQuery,336, -DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.HibernateQuery,336, -CloneMethodReturnTypeMustMatchClassName,org.grails.orm.hibernate.query.HibernateQuery,630, -CloneThrowsCloneNotSupportedException,org.grails.orm.hibernate.query.HibernateQuery,630, +DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.HibernateQuery,336,YES +DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.HibernateQuery,336,YES +CloneMethodReturnTypeMustMatchClassName,org.grails.orm.hibernate.query.HibernateQuery,630,YES +CloneThrowsCloneNotSupportedException,org.grails.orm.hibernate.query.HibernateQuery,630,YES UseLocaleWithCaseConversions,org.grails.orm.hibernate.query.HqlQueryContext,101, AvoidDuplicateLiterals,org.grails.orm.hibernate.query.HqlQueryContext,102, AvoidDuplicateLiterals,org.grails.orm.hibernate.query.HqlQueryContext,105, diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java index ac14d48058..381a3c4b53 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java @@ -332,22 +332,20 @@ public class HibernateQuery extends Query { + "]. Property is not an association!"); } + @SuppressWarnings("PMD.DataflowAnomalyAnalysis") private CriteriaAndAlias getOrCreateAlias(String associationName, String alias) { - CriteriaAndAlias subCriteria = null; String associationPath = getAssociationPath(associationName); - if (alias == null) { - alias = generateAlias(associationName); - } + String effectiveAlias = (alias == null) ? generateAlias(associationName) : alias; if (createdAssociationPaths.containsKey(associationPath)) { - subCriteria = createdAssociationPaths.get(associationPath); + return createdAssociationPaths.get(associationPath); } else { CriteriaQuery criteriaQuery = getCriteriaBuilder().createQuery(entity.getJavaClass()); - subCriteria = new CriteriaAndAlias(criteriaQuery, alias, associationPath); + CriteriaAndAlias subCriteria = new CriteriaAndAlias(criteriaQuery, effectiveAlias, associationPath); createdAssociationPaths.put(associationPath, subCriteria); - createdAssociationPaths.put(alias, subCriteria); + createdAssociationPaths.put(effectiveAlias, subCriteria); + return subCriteria; } - return subCriteria; } @Override @@ -627,23 +625,25 @@ public class HibernateQuery extends Query { } @Override - public Object clone() { + @SuppressWarnings("PMD.CloneThrowsCloneNotSupportedException") + public HibernateQuery clone() { final HibernateSession hibernateSession = (HibernateSession) getSession(); final GrailsHibernateTemplate hibernateTemplate = (GrailsHibernateTemplate) hibernateSession.getNativeInterface(); - return hibernateTemplate.execute( - (GrailsHibernateTemplate.HibernateCallback<Object>) - session -> { - HibernateQuery hibernateQuery = new HibernateQuery(hibernateSession, entity); - if (this.max != null && this.max > 0) { - hibernateQuery.max(this.max); - } - if (this.offset != null && this.offset > 0) { - hibernateQuery.offset(this.offset); - } - hibernateQuery.setDetachedCriteria(this.detachedCriteria.clone()); - - return hibernateQuery; - }); + return (HibernateQuery) + hibernateTemplate.execute( + (GrailsHibernateTemplate.HibernateCallback<Object>) + session -> { + HibernateQuery hibernateQuery = new HibernateQuery(hibernateSession, entity); + if (this.max != null && this.max > 0) { + hibernateQuery.max(this.max); + } + if (this.offset != null && this.offset > 0) { + hibernateQuery.offset(this.offset); + } + hibernateQuery.setDetachedCriteria(this.detachedCriteria.clone()); + + return hibernateQuery; + }); } }
