This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new b9a889c833 GROOVY-11745: check for null sender
b9a889c833 is described below
commit b9a889c833fdf30b1a9bc8b7db24c6c6fd502970
Author: Eric Milles <[email protected]>
AuthorDate: Sat Jan 17 13:55:59 2026 -0600
GROOVY-11745: check for null sender
---
src/main/java/groovy/lang/MetaClassImpl.java | 2 +-
src/test/groovy/groovy/lang/MetaClassTest.java | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java
b/src/main/java/groovy/lang/MetaClassImpl.java
index b2e437145a..2dcd9c6ca0 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -2808,7 +2808,7 @@ public class MetaClassImpl implements MetaClass,
MutableMetaClass {
}
private MetaProperty getMetaProperty(final Class<?> clazz, final String
name, final boolean useSuper, final boolean useStatic) {
- CachedClass cachedClass = (clazz == theClass ? theCachedClass :
ReflectionCache.getCachedClass(clazz));
+ CachedClass cachedClass = (clazz == null || clazz == theClass) ?
theCachedClass : ReflectionCache.getCachedClass(clazz);
Map<String, MetaProperty> propertyMap;
if (useStatic) {
diff --git a/src/test/groovy/groovy/lang/MetaClassTest.java
b/src/test/groovy/groovy/lang/MetaClassTest.java
index 4118aaa4f5..43f50130cb 100644
--- a/src/test/groovy/groovy/lang/MetaClassTest.java
+++ b/src/test/groovy/groovy/lang/MetaClassTest.java
@@ -123,6 +123,8 @@ final class MetaClassTest {
DymmyClass dymmyClass = new DymmyClass();
MetaClass metaClass = InvokerHelper.getMetaClass(dymmyClass);
metaClass.setProperty(dymmyClass, "anInt", Integer.valueOf(10));
+
+ assertEquals(10, dymmyClass.getAnInt());
}
@Test
@@ -179,6 +181,18 @@ final class MetaClassTest {
metaClass.setProperty(dymmyClass, "integers", list);
}
+ // GROOVY-11745
+ @Test
+ void testSetPropertyWithoutSender() {
+ MetaClass metaClass = new MetaClassImpl(DymmyClass.class);
+ metaClass.initialize();
+
+ DymmyClass dymmyClass = new DymmyClass();
+ metaClass.setProperty(null, dymmyClass, "anInt", 1234, false, false);
+
+ assertEquals(1234, dymmyClass.getAnInt());
+ }
+
@Test
void testMetaMethodsOnlyAddedOnce() {
MetaClass metaClass = InvokerHelper.getMetaClass("some String");