You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2022/01/14 10:56:30 UTC

[groovy] 04/04: GROOVY-5169: exclude synthetic fields

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit a4e5bac6448151914e675a300db90708b0a958a5
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Jan 14 20:29:58 2022 +1000

    GROOVY-5169: exclude synthetic fields
---
 src/main/java/groovy/lang/MetaClassImpl.java | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index 3710648..fdaeca6 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -84,6 +84,7 @@ import org.codehaus.groovy.util.FastArray;
 import org.codehaus.groovy.util.SingleKeyHashMap;
 import org.codehaus.groovy.vmplugin.VMPlugin;
 import org.codehaus.groovy.vmplugin.VMPluginFactory;
+import org.objectweb.asm.Opcodes;
 
 import java.beans.BeanInfo;
 import java.beans.EventSetDescriptor;
@@ -2313,6 +2314,9 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         // simply return the values of the metaproperty map as a List
         List<MetaProperty> ret = new ArrayList<>(propertyMap.size());
         for (MetaProperty mp : propertyMap.values()) {
+            if (mp instanceof CachedField && (mp.getModifiers() & Opcodes.ACC_SYNTHETIC) != 0) {
+                continue;
+            }
             if (mp instanceof MetaBeanProperty) {
                 MetaBeanProperty mbp = (MetaBeanProperty) mp;
                 // filter out extrinsic properties (DGM, ...)