The GitHub Actions job "Groovy Snapshot Canary Build" on 
grails-core.git/fix/gorm-without-tenant-marker-8.0.x has failed.
Run started by GitHub user matrei (triggered by matrei).

Head commit for run:
33ce56106e19e19d5a224069d96bfa0f5c59740e / Mattias Reichel 
<[email protected]>
Run without a tenant only inside Tenants.withoutId

With DISCRIMINATOR multi-tenancy, only Tenants.withoutId and
@WithoutTenant run without a tenant. A tenant id of default from a
resolver or from withId is a tenant id like any other, and inside
withoutId, Tenants.currentId() returns default while withCurrent and
@CurrentTenant keep running without a tenant. The new
Tenants.isWithoutId(datastore) and Tenants.isWithoutId() tell whether
the current code runs without a tenant id. GormStaticApi.withoutId runs
without a tenant for a multi-tenant datastore and passes a closure the
tenant id and the session, as withId does.

A tenant resolver that returns null causes a TenantNotFoundException.
With a numeric tenant id, only Tenants.withoutId uses the tenant id 0,
and a resolved default fails as it does with GORM for Hibernate.

GORM for Hibernate restricts a collection of a multi-tenant entity to
the current tenant when it is loaded lazily or fetched by join, also
when it is a many-to-many collection or a query fetches it by join
through another association, and load and proxy of a multi-tenant
entity run a query, as get does.

Before a query on an entity that isn't multi-tenant but has a
collection of a multi-tenant entity, criteria queries included, GORM
for Hibernate activates the tenant filter when there is a current
tenant. A query on such an entity that the tenant resolver runs while
GORM resolves the tenant does not call the resolver again.

Report URL: https://github.com/apache/grails-core/actions/runs/39560373076

With regards,
GitHub Actions via GitBox

Reply via email to