You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/03/23 00:47:10 UTC
groovy git commit: Use classvalue when using Java7+ to avoid memory
leak
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 <su...@apache.org>
Authored: Fri Mar 23 08:47:03 2018 +0800
Committer: sunlan <su...@apache.org>
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) {