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

Reply via email to