[JIRA] (HHH-16385) QueryKey not serializable when working with @TenantId
by ClementC (JIRA)
ClementC ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiYjkxZDRiYzA0... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16385?atlOrigin=eyJpIjoiYjkxZD... ) HHH-16385 ( https://hibernate.atlassian.net/browse/HHH-16385?atlOrigin=eyJpIjoiYjkxZD... ) QueryKey not serializable when working with @TenantId ( https://hibernate.atlassian.net/browse/HHH-16385?atlOrigin=eyJpIjoiYjkxZD... )
Issue Type: Bug Affects Versions: 6.1.7, 6.2.0.CR4 Assignee: Unassigned Created: 28/Mar/2023 05:00 AM Priority: Critical Reporter: ClementC ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... )
When using @TenantId to perform multitenancy, org.hibernate.cache.spi.QueryKey instances becomes non-serializable, preventing query caching.
This is because of the Set<String> enabledFilterNames field, that is returned by org.hibernate.engine.spi.LoadQueryInfluencers#getEnabledFilterNames :
* When enalbedFilters is empty, it returns Collections.emptySet() , which is serializable
* But when multitenancy is enabled, the TenantIdBinder.FILTER_NAME filter is enabled ( https://github.com/hibernate/hibernate-orm/blame/6.2/hibernate-core/src/m... ) , and getEnabledFilterNames return a Collections.unmodifiableSet( enabledFilters.keySet() ) => the keySet of the HashMap<String,Filter> enabledFilters is not serializable, hence the result of getEnabledFilterNames not being serializable
A copy of the filter keys should be performed to ensure serializability.
( https://hibernate.atlassian.net/browse/HHH-16385#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16385#add-comment?atlOrigin=ey... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100219- sha1:6a6077b )
2 years, 9 months