This is an automated email from the ASF dual-hosted git repository. sunlan pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 54ed0f8839082316419e8cad07399f6028bfda1d Author: Daniel Sun <[email protected]> AuthorDate: Wed Jul 3 23:00:49 2019 +0800 Refine the switch according to @paulk-asert's suggestion --- src/main/java/groovy/lang/MetaClassImpl.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java index 8516472..b0ab132 100644 --- a/src/main/java/groovy/lang/MetaClassImpl.java +++ b/src/main/java/groovy/lang/MetaClassImpl.java @@ -142,6 +142,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass { }; private static final MetaMethod[] EMPTY = MetaMethod.EMPTY_ARRAY; private static final MetaMethod AMBIGUOUS_LISTENER_METHOD = new DummyMetaMethod(); + private static final boolean PERMISSIVE_PROPERTY_ACCESS = SystemUtil.getBooleanSafe("groovy.permissive.property.access"); protected final Class theClass; protected final CachedClass theCachedClass; @@ -173,6 +174,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass { private MetaMethod propertyMissingSet; private MetaMethod methodMissing; private MetaMethodIndex.Header mainClassMethodHeader; + private boolean permissivePropertyAccess = PERMISSIVE_PROPERTY_ACCESS; /** * Constructor @@ -2211,7 +2213,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass { // } } - if (!ALLOW_ILLEGAL_ACCESS_PROPERTIES) { + if (!permissivePropertyAccess) { if (element instanceof MetaBeanProperty) { MetaBeanProperty mbp = (MetaBeanProperty) element; boolean getterAccessible = canAccessLegally(mbp.getGetter()); @@ -2226,8 +2228,6 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass { return ret; } - private static final boolean ALLOW_ILLEGAL_ACCESS_PROPERTIES = SystemUtil.getBooleanSafe("groovy.allow.illegal.access.properties"); - private static boolean canAccessLegally(MetaMethod accessor) { boolean accessible = true; if (accessor instanceof CachedMethod) { @@ -4084,4 +4084,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass { private enum InvokeMethodResult { NONE } + + public boolean isPermissivePropertyAccess() { + return permissivePropertyAccess; + } + + public void setPermissivePropertyAccess(boolean permissivePropertyAccess) { + this.permissivePropertyAccess = permissivePropertyAccess; + } }
