This is an automated email from the ASF dual-hosted git repository. emilles pushed a commit to branch GROOVY-11745 in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 3f8f996ae75b0a6ea56ee958bbecbb7ced967449 Author: Eric Milles <eric.mil...@thomsonreuters.com> AuthorDate: Fri Sep 5 11:37:47 2025 -0500 GROOVY-11745: check for null sender --- src/main/java/groovy/lang/MetaClassImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java index 836b84b28f..e5d64e2f19 100644 --- a/src/main/java/groovy/lang/MetaClassImpl.java +++ b/src/main/java/groovy/lang/MetaClassImpl.java @@ -2095,11 +2095,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass { } private boolean isVisibleProperty(final MetaProperty field, final MetaMethod method, final Class<?> sender) { - if (!(field instanceof CachedField)) return false; + if (field == null + || sender == null // GROOVY-11745 + || field.isPrivate() + || !(field instanceof CachedField cachedField)) return false; - if (field.isPrivate()) return false; - - Class<?> owner = ((CachedField) field).getDeclaringClass(); + Class<?> owner = cachedField.getDeclaringClass(); // ensure access originates within the type hierarchy of the field owner if (owner.equals(sender) || !owner.isAssignableFrom(sender)) return false;