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

Reply via email to