The GitHub Actions job "CI - Groovy Joint Validation Build" on grails-core.git/groovy-proxy-getproxiedclass-fix has failed. Run started by GitHub user codeconsole (triggered by codeconsole).
Head commit for run: ac24d2223e101d0d92b5fabc9e5c76ef3a2a38e5 / Scott Murphy Heiberg <[email protected]> fix(grails-datamapping-core): GroovyProxyFactory.getProxiedClass walks past entity to Object GroovyProxyFactory.createProxy() builds metaclass-only proxies: a real entity instance with a ProxyInstanceMetaClass attached. For those, proxy.getClass() is already the entity class. getProxiedClass() was copied from JavassistProxyFactory, whose proxies are runtime subclasses where getSuperclass() correctly recovers the entity. Applied to metaclass-only proxies, the same call walks one level past the entity — to java.lang.Object for any entity extending Object directly. Downstream callers that feed the result into MappingContext.getPersistentEntity (notably UniqueConstraint.processValidate) get null back and NPE on the next dereference. Surfaces on MongoDB / Neo4j (no Javassist on the classpath → GroovyProxyFactory wins) when cascade validation hits a not-yet-unwrapped to-one association. Drop the superclass walk; proxy.getClass() is the entity class for both the proxy and non-proxy paths. Adds GroovyProxyFactorySpec covering both paths to lock the contract. Report URL: https://github.com/apache/grails-core/actions/runs/25581673877 With regards, GitHub Actions via GitBox
