Repository: groovy Updated Branches: refs/heads/GROOVY_2_5_X f35ca7811 -> dbcb3fcdc
Use classvalue when using Java7+ to avoid memory leak (cherry picked from commit 8cb3793) Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/dbcb3fcd Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/dbcb3fcd Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/dbcb3fcd Branch: refs/heads/GROOVY_2_5_X Commit: dbcb3fcdc2cd19e07933092576bb3f0a66674f28 Parents: f35ca78 Author: sunlan <[email protected]> Authored: Fri Mar 23 08:47:03 2018 +0800 Committer: sunlan <[email protected]> Committed: Fri Mar 23 09:21:40 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/dbcb3fcd/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) {
