Repository: groovy Updated Branches: refs/heads/master a2851b79a -> 8cb379349
Use classvalue when using Java7+ to avoid memory leak Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/8cb37934 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/8cb37934 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/8cb37934 Branch: refs/heads/master Commit: 8cb3793498199d9fcff32484e5208f311f94cad4 Parents: a2851b7 Author: sunlan <[email protected]> Authored: Fri Mar 23 08:47:03 2018 +0800 Committer: sunlan <[email protected]> Committed: Fri Mar 23 08:47:03 2018 +0800 ---------------------------------------------------------------------- .../codehaus/groovy/reflection/GroovyClassValueFactory.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/8cb37934/src/main/java/org/codehaus/groovy/reflection/GroovyClassValueFactory.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/codehaus/groovy/reflection/GroovyClassValueFactory.java b/src/main/java/org/codehaus/groovy/reflection/GroovyClassValueFactory.java index c367791..e131215 100644 --- a/src/main/java/org/codehaus/groovy/reflection/GroovyClassValueFactory.java +++ b/src/main/java/org/codehaus/groovy/reflection/GroovyClassValueFactory.java @@ -20,6 +20,7 @@ package org.codehaus.groovy.reflection; import org.codehaus.groovy.reflection.GroovyClassValue.ComputeValue; import org.codehaus.groovy.reflection.v7.GroovyClassValueJava7; +import org.codehaus.groovy.vmplugin.VMPluginFactory; class GroovyClassValueFactory { /** @@ -30,8 +31,11 @@ class GroovyClassValueFactory { */ private static final boolean USE_CLASSVALUE; static { - String isJ9 = "IBM J9 VM".equals(System.getProperty("java.vm.name")) ? "true" : "false"; - USE_CLASSVALUE = Boolean.valueOf(System.getProperty("groovy.use.classvalue", isJ9)); + String useClassValueDefault = + (VMPluginFactory.getPlugin().getVersion() >= 7 || "IBM J9 VM".equals(System.getProperty("java.vm.name"))) + ? "true" : "false"; + + USE_CLASSVALUE = Boolean.valueOf(System.getProperty("groovy.use.classvalue", useClassValueDefault)); } public static <T> GroovyClassValue<T> createGroovyClassValue(ComputeValue<T> computeValue) {
