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 eae7e3946ff0bfc14c797ed6a93bbf2457870fdb Author: Walter Duque de Estrada <[email protected]> AuthorDate: Thu Feb 26 08:14:24 2026 -0600 Fix PMD violations in MultiTenantEventListener --- grails-data-hibernate7/core/PMD.md | 6 ++-- .../multitenancy/MultiTenantEventListener.java | 38 ++++++++++------------ 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/grails-data-hibernate7/core/PMD.md b/grails-data-hibernate7/core/PMD.md index cd8e2a6940..1c59401ed4 100644 --- a/grails-data-hibernate7/core/PMD.md +++ b/grails-data-hibernate7/core/PMD.md @@ -239,9 +239,9 @@ DataflowAnomalyAnalysis,org.grails.orm.hibernate.event.listener.HibernateEventLi DataflowAnomalyAnalysis,org.grails.orm.hibernate.event.listener.HibernateEventListener,164, DataflowAnomalyAnalysis,org.grails.orm.hibernate.event.listener.HibernateEventListener,182, CloseResource,org.grails.orm.hibernate.event.listener.HibernateEventListener,222, -DataflowAnomalyAnalysis,org.grails.orm.hibernate.multitenancy.MultiTenantEventListener,59, -DataflowAnomalyAnalysis,org.grails.orm.hibernate.multitenancy.MultiTenantEventListener,79, -CompareObjectsWithEquals,org.grails.orm.hibernate.multitenancy.MultiTenantEventListener,93, +DataflowAnomalyAnalysis,org.grails.orm.hibernate.multitenancy.MultiTenantEventListener,59,YES +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, DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,68, DataflowAnomalyAnalysis,org.grails.orm.hibernate.query.GrailsHibernateQueryUtils,84, diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/multitenancy/MultiTenantEventListener.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/multitenancy/MultiTenantEventListener.java index 0807256b2e..b7e7677261 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/multitenancy/MultiTenantEventListener.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/multitenancy/MultiTenantEventListener.java @@ -53,34 +53,32 @@ public class MultiTenantEventListener implements PersistenceEventListener { return AbstractHibernateDatastore.class.isAssignableFrom(sourceType); } + @SuppressWarnings("PMD.DataflowAnomalyAnalysis") @Override public void onApplicationEvent(ApplicationEvent event) { if (supportsEventType(event.getClass())) { - Datastore hibernateDatastore = (Datastore) event.getSource(); - if (event instanceof PreQueryEvent) { - PreQueryEvent preQueryEvent = (PreQueryEvent) event; + Datastore datastore = (Datastore) event.getSource(); + if (event instanceof PreQueryEvent preQueryEvent) { Query query = preQueryEvent.getQuery(); PersistentEntity entity = query.getEntity(); if (entity.isMultiTenant()) { - if (hibernateDatastore == null) { - hibernateDatastore = GormEnhancer.findDatastore(entity.getJavaClass()); - } - if (supportsSourceType(hibernateDatastore.getClass())) { - ((AbstractHibernateDatastore) hibernateDatastore).enableMultiTenancyFilter(); + Datastore ds = + (datastore != null) ? datastore : GormEnhancer.findDatastore(entity.getJavaClass()); + if (ds instanceof AbstractHibernateDatastore hibernateDatastore) { + hibernateDatastore.enableMultiTenancyFilter(); } } - } else if ((event instanceof ValidationEvent) - || (event instanceof PreInsertEvent) - || (event instanceof PreUpdateEvent)) { - AbstractPersistenceEvent preInsertEvent = (AbstractPersistenceEvent) event; - PersistentEntity entity = preInsertEvent.getEntity(); + } else if (event instanceof AbstractPersistenceEvent persistenceEvent + && (persistenceEvent instanceof ValidationEvent + || persistenceEvent instanceof PreInsertEvent + || persistenceEvent instanceof PreUpdateEvent)) { + PersistentEntity entity = persistenceEvent.getEntity(); if (entity.isMultiTenant()) { TenantId tenantId = entity.getTenantId(); - if (hibernateDatastore == null) { - hibernateDatastore = GormEnhancer.findDatastore(entity.getJavaClass()); - } - if (supportsSourceType(hibernateDatastore.getClass())) { + Datastore ds = + (datastore != null) ? datastore : GormEnhancer.findDatastore(entity.getJavaClass()); + if (ds instanceof AbstractHibernateDatastore hibernateDatastore) { Serializable currentId; if (hibernateDatastore instanceof MultiTenantCapableDatastore) { @@ -90,12 +88,12 @@ public class MultiTenantEventListener implements PersistenceEventListener { } if (currentId != null) { try { - if (currentId == ConnectionSource.DEFAULT) { + if (ConnectionSource.DEFAULT.equals(currentId)) { currentId = (Serializable) - preInsertEvent.getEntityAccess().getProperty(tenantId.getName()); + persistenceEvent.getEntityAccess().getProperty(tenantId.getName()); } - preInsertEvent.getEntityAccess().setProperty(tenantId.getName(), currentId); + persistenceEvent.getEntityAccess().setProperty(tenantId.getName(), currentId); } catch (Exception e) { throw new TenantException( "Could not assigned tenant id ["
