From 1714c022e271c7faf64b7993de9d06ad457ec4c2 Mon Sep 17 00:00:00 2001 From: Christian Beikov Date: Tue, 2 Mar 2021 11:36:54 +0100 Subject: [PATCH] HHH-11076 Log a warning if uninitialized collection unsets session when filters are enabled --- .../collection/internal/AbstractPersistentCollection.java | 4 ++++ .../main/java/org/hibernate/internal/CoreMessageLogger.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/hibernate-core/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java b/hibernate-core/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java index 047f414d44..eee4af75d1 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java @@ -656,6 +656,10 @@ public final boolean unsetSession(SharedSessionContractImplementor currentSessio LOG.queuedOperationWhenDetachFromSession( collectionInfoString ); } } + if ( allowLoadOutsideTransaction && !initialized && session.getLoadQueryInfluencers().hasEnabledFilters() ) { + final String collectionInfoString = MessageHelper.collectionInfoString( getRole(), getKey() ); + LOG.enabledFiltersWhenDetachFromSession( collectionInfoString ); + } this.session = null; } return true; diff --git a/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java b/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java index a95a767ee5..096aa3ec3d 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java @@ -1856,4 +1856,8 @@ void attemptToAssociateProxyWithTwoOpenSessions( @Message(value = "Ignoring ServiceConfigurationError caught while trying to instantiate service '%s'.", id = 505) void ignoringServiceConfigurationError(Class serviceContract, @Cause ServiceConfigurationError error); + @LogMessage(level = WARN) + @Message(value = "Detaching an uninitialized collection with enabled filters from a session: %s", id = 506) + void enabledFiltersWhenDetachFromSession(String collectionInfoString); + }