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) {