[jira] [Issue Comment Deleted] (GROOVY-8653) foreach index value error

2018-06-21 Thread chenxiaojie (JIRA)


 [ 
https://issues.apache.org/jira/browse/GROOVY-8653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenxiaojie updated GROOVY-8653:

Comment: was deleted

(was: https://issues.apache.org/jira/browse/GROOVY-7409

the reason is similar to this issue.

my code is relatively simple, and it is not easy to find this problem.)

> foreach index value error
> -
>
> Key: GROOVY-8653
> URL: https://issues.apache.org/jira/browse/GROOVY-8653
> Project: Groovy
>  Issue Type: Bug
>  Components: Groovy Console, groovy-jdk
>Affects Versions: 2.3.7, 2.4.15
> Environment: jdk1.7.0_79
>Reporter: chenxiaojie
>Priority: Major
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> {code:java}
> import java.util.concurrent.ConcurrentHashMap
> import java.util.concurrent.ExecutorService
> import java.util.concurrent.Executors
> import java.util.concurrent.TimeUnit
> import java.util.concurrent.atomic.AtomicInteger  
>   
> ConcurrentHashMap map = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map2 = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map3 = new 
> ConcurrentHashMap(1)
> ExecutorService es = Executors.newFixedThreadPool(100)
> 1.upto(1) {
> i ->
> es.execute {
> AtomicInteger count = map.get(i)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map.putIfAbsent(i, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> for (Integer i = 0; i < 1; i++) {
> es.execute {
> AtomicInteger count = map2.get(i)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map2.putIfAbsent(i, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> for (Integer i = 0; i < 1; i++) {
> Integer j = i
> es.execute {
> AtomicInteger count = map3.get(j)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map3.putIfAbsent(j, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> es.shutdown()
> es.awaitTermination(1, TimeUnit.MINUTES)
> // println 1
> println map.size()
> // println 6583 ??? size is 0-1 integer
> println map2.size()
> // println 1
> println map3.size()
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Closed] (GROOVY-8653) foreach index value error

2018-06-21 Thread chenxiaojie (JIRA)


 [ 
https://issues.apache.org/jira/browse/GROOVY-8653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenxiaojie closed GROOVY-8653.
---
Resolution: Not A Problem

https://issues.apache.org/jira/browse/GROOVY-7409

the reason is similar to this issue.

my code is relatively simple, and it is not easy to find this problem.

> foreach index value error
> -
>
> Key: GROOVY-8653
> URL: https://issues.apache.org/jira/browse/GROOVY-8653
> Project: Groovy
>  Issue Type: Bug
>  Components: Groovy Console, groovy-jdk
>Affects Versions: 2.3.7, 2.4.15
> Environment: jdk1.7.0_79
>Reporter: chenxiaojie
>Priority: Major
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> {code:java}
> import java.util.concurrent.ConcurrentHashMap
> import java.util.concurrent.ExecutorService
> import java.util.concurrent.Executors
> import java.util.concurrent.TimeUnit
> import java.util.concurrent.atomic.AtomicInteger  
>   
> ConcurrentHashMap map = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map2 = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map3 = new 
> ConcurrentHashMap(1)
> ExecutorService es = Executors.newFixedThreadPool(100)
> 1.upto(1) {
> i ->
> es.execute {
> AtomicInteger count = map.get(i)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map.putIfAbsent(i, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> for (Integer i = 0; i < 1; i++) {
> es.execute {
> AtomicInteger count = map2.get(i)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map2.putIfAbsent(i, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> for (Integer i = 0; i < 1; i++) {
> Integer j = i
> es.execute {
> AtomicInteger count = map3.get(j)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map3.putIfAbsent(j, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> es.shutdown()
> es.awaitTermination(1, TimeUnit.MINUTES)
> // println 1
> println map.size()
> // println 6583 ??? size is 0-1 integer
> println map2.size()
> // println 1
> println map3.size()
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (GROOVY-8653) foreach index value error

2018-06-21 Thread chenxiaojie (JIRA)


[ 
https://issues.apache.org/jira/browse/GROOVY-8653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519107#comment-16519107
 ] 

chenxiaojie commented on GROOVY-8653:
-

https://issues.apache.org/jira/browse/GROOVY-7409

the reason is similar to this issue.

my code is relatively simple, and it is not easy to find this problem.

> foreach index value error
> -
>
> Key: GROOVY-8653
> URL: https://issues.apache.org/jira/browse/GROOVY-8653
> Project: Groovy
>  Issue Type: Bug
>  Components: Groovy Console, groovy-jdk
>Affects Versions: 2.3.7, 2.4.15
> Environment: jdk1.7.0_79
>Reporter: chenxiaojie
>Priority: Major
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> {code:java}
> import java.util.concurrent.ConcurrentHashMap
> import java.util.concurrent.ExecutorService
> import java.util.concurrent.Executors
> import java.util.concurrent.TimeUnit
> import java.util.concurrent.atomic.AtomicInteger  
>   
> ConcurrentHashMap map = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map2 = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map3 = new 
> ConcurrentHashMap(1)
> ExecutorService es = Executors.newFixedThreadPool(100)
> 1.upto(1) {
> i ->
> es.execute {
> AtomicInteger count = map.get(i)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map.putIfAbsent(i, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> for (Integer i = 0; i < 1; i++) {
> es.execute {
> AtomicInteger count = map2.get(i)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map2.putIfAbsent(i, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> for (Integer i = 0; i < 1; i++) {
> Integer j = i
> es.execute {
> AtomicInteger count = map3.get(j)
> if (count == null) {
> count = new AtomicInteger(0)
> AtomicInteger oldCount = map3.putIfAbsent(j, count)
> if (oldCount != null) {
> count = oldCount
> }
> }
> count.incrementAndGet()
> }
> }
> es.shutdown()
> es.awaitTermination(1, TimeUnit.MINUTES)
> // println 1
> println map.size()
> // println 6583 ??? size is 0-1 integer
> println map2.size()
> // println 1
> println map3.size()
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (GROOVY-8653) foreach index value error

2018-06-20 Thread chenxiaojie (JIRA)


 [ 
https://issues.apache.org/jira/browse/GROOVY-8653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenxiaojie updated GROOVY-8653:

Description: 

{code:java}
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicInteger  
  
ConcurrentHashMap map = new ConcurrentHashMap(1)
ConcurrentHashMap map2 = new ConcurrentHashMap(1)
ConcurrentHashMap map3 = new ConcurrentHashMap(1)
ExecutorService es = Executors.newFixedThreadPool(100)

1.upto(1) {
i ->
es.execute {
AtomicInteger count = map.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

for (Integer i = 0; i < 1; i++) {
es.execute {
AtomicInteger count = map2.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map2.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}


for (Integer i = 0; i < 1; i++) {
Integer j = i
es.execute {
AtomicInteger count = map3.get(j)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map3.putIfAbsent(j, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

es.shutdown()
es.awaitTermination(1, TimeUnit.MINUTES)
// println 1
println map.size()
// println 6583 ??? size is 0-1 integer
println map2.size()
// println 1
println map3.size()
{code}


  was:
{code:java}
ConcurrentHashMap map = new 
ConcurrentHashMap(1)
ConcurrentHashMap map2 = new 
ConcurrentHashMap(1)
ConcurrentHashMap map3 = new 
ConcurrentHashMap(1)
ExecutorService es = Executors.newFixedThreadPool(100)

1.upto(1) {
i ->
es.execute {
AtomicInteger count = map.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

for (Integer i = 0; i < 1; i++) {
es.execute {
AtomicInteger count = map2.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map2.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}


for (Integer i = 0; i < 1; i++) {
Integer j = i
es.execute {
AtomicInteger count = map3.get(j)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map3.putIfAbsent(j, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

es.shutdown()
es.awaitTermination(1, TimeUnit.MINUTES)
// println 1
println map.size()
// println 6583 ??? size is 0-1 integer
println map2.size()
// println 1
println map3.size()
{code}



> foreach index value error
> -
>
> Key: GROOVY-8653
> URL: https://issues.apache.org/jira/browse/GROOVY-8653
> Project: Groovy
>  Issue Type: Bug
>  Components: Groovy Console, groovy-jdk
>Affects Versions: 2.3.7, 2.4.15
> Environment: jdk1.7.0_79
>Reporter: chenxiaojie
>Priority: Major
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> {code:java}
> import java.util.concurrent.ConcurrentHashMap
> import java.util.concurrent.ExecutorService
> import java.util.concurrent.Executors
> import java.util.concurrent.TimeUnit
> import java.util.concurrent.atomic.AtomicInteger  
>   
> ConcurrentHashMap map = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map2 = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map3 = new 
> ConcurrentHashMap(1)
> ExecutorService es = Executors.newFixedThreadPool(100)
> 1.upto(1) {
> 

[jira] [Updated] (GROOVY-8653) foreach index value error

2018-06-20 Thread chenxiaojie (JIRA)


 [ 
https://issues.apache.org/jira/browse/GROOVY-8653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenxiaojie updated GROOVY-8653:

Description: 

{code:java}
ConcurrentHashMap map = new 
ConcurrentHashMap(1)
ConcurrentHashMap map2 = new 
ConcurrentHashMap(1)
ConcurrentHashMap map3 = new 
ConcurrentHashMap(1)
ExecutorService es = Executors.newFixedThreadPool(100)

1.upto(1) {
i ->
es.execute {
AtomicInteger count = map.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

for (Integer i = 0; i < 1; i++) {
es.execute {
AtomicInteger count = map2.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map2.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}


for (Integer i = 0; i < 1; i++) {
Integer j = i
es.execute {
AtomicInteger count = map3.get(j)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map3.putIfAbsent(j, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

es.shutdown()
es.awaitTermination(1, TimeUnit.MINUTES)
// println 1
println map.size()
{color:red}// println 6583 ??? size is 0-1 integer
println map2.size(){color}
// println 1
println map3.size()
{code}


  was:
ConcurrentHashMap map = new 
ConcurrentHashMap(1)
ConcurrentHashMap map2 = new 
ConcurrentHashMap(1)
ConcurrentHashMap map3 = new 
ConcurrentHashMap(1)
ExecutorService es = Executors.newFixedThreadPool(100)

1.upto(1) {
i ->
es.execute {
AtomicInteger count = map.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

for (Integer i = 0; i < 1; i++) {
es.execute {
AtomicInteger count = map2.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map2.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}


for (Integer i = 0; i < 1; i++) {
Integer j = i
es.execute {
AtomicInteger count = map3.get(j)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map3.putIfAbsent(j, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

es.shutdown()
es.awaitTermination(1, TimeUnit.MINUTES)
// println 1
println map.size()
{color:red}// println 6583 ??? size is 0-1 integer
println map2.size(){color}
// println 1
println map3.size()


> foreach index value error
> -
>
> Key: GROOVY-8653
> URL: https://issues.apache.org/jira/browse/GROOVY-8653
> Project: Groovy
>  Issue Type: Bug
>  Components: Groovy Console, groovy-jdk
>Affects Versions: 2.3.7, 2.4.15
> Environment: jdk1.7.0_79
>Reporter: chenxiaojie
>Priority: Major
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> {code:java}
> ConcurrentHashMap map = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map2 = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map3 = new 
> ConcurrentHashMap(1)
> ExecutorService es = Executors.newFixedThreadPool(100)
> 

[jira] [Updated] (GROOVY-8653) foreach index value error

2018-06-20 Thread chenxiaojie (JIRA)


 [ 
https://issues.apache.org/jira/browse/GROOVY-8653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenxiaojie updated GROOVY-8653:

Description: 
{code:java}
ConcurrentHashMap map = new 
ConcurrentHashMap(1)
ConcurrentHashMap map2 = new 
ConcurrentHashMap(1)
ConcurrentHashMap map3 = new 
ConcurrentHashMap(1)
ExecutorService es = Executors.newFixedThreadPool(100)

1.upto(1) {
i ->
es.execute {
AtomicInteger count = map.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

for (Integer i = 0; i < 1; i++) {
es.execute {
AtomicInteger count = map2.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map2.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}


for (Integer i = 0; i < 1; i++) {
Integer j = i
es.execute {
AtomicInteger count = map3.get(j)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map3.putIfAbsent(j, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

es.shutdown()
es.awaitTermination(1, TimeUnit.MINUTES)
// println 1
println map.size()
// println 6583 ??? size is 0-1 integer
println map2.size()
// println 1
println map3.size()
{code}


  was:

{code:java}
ConcurrentHashMap map = new 
ConcurrentHashMap(1)
ConcurrentHashMap map2 = new 
ConcurrentHashMap(1)
ConcurrentHashMap map3 = new 
ConcurrentHashMap(1)
ExecutorService es = Executors.newFixedThreadPool(100)

1.upto(1) {
i ->
es.execute {
AtomicInteger count = map.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

for (Integer i = 0; i < 1; i++) {
es.execute {
AtomicInteger count = map2.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map2.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}


for (Integer i = 0; i < 1; i++) {
Integer j = i
es.execute {
AtomicInteger count = map3.get(j)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map3.putIfAbsent(j, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

es.shutdown()
es.awaitTermination(1, TimeUnit.MINUTES)
// println 1
println map.size()
{color:red}// println 6583 ??? size is 0-1 integer
println map2.size(){color}
// println 1
println map3.size()
{code}



> foreach index value error
> -
>
> Key: GROOVY-8653
> URL: https://issues.apache.org/jira/browse/GROOVY-8653
> Project: Groovy
>  Issue Type: Bug
>  Components: Groovy Console, groovy-jdk
>Affects Versions: 2.3.7, 2.4.15
> Environment: jdk1.7.0_79
>Reporter: chenxiaojie
>Priority: Major
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> {code:java}
> ConcurrentHashMap map = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map2 = new 
> ConcurrentHashMap(1)
> ConcurrentHashMap map3 = new 
> ConcurrentHashMap(1)
> ExecutorService es = Executors.newFixedThreadPool(100)
> 

[jira] [Created] (GROOVY-8653) foreach index value error

2018-06-20 Thread chenxiaojie (JIRA)
chenxiaojie created GROOVY-8653:
---

 Summary: foreach index value error
 Key: GROOVY-8653
 URL: https://issues.apache.org/jira/browse/GROOVY-8653
 Project: Groovy
  Issue Type: Bug
  Components: Groovy Console, groovy-jdk
Affects Versions: 2.4.15, 2.3.7
 Environment: jdk1.7.0_79
Reporter: chenxiaojie


ConcurrentHashMap map = new 
ConcurrentHashMap(1)
ConcurrentHashMap map2 = new 
ConcurrentHashMap(1)
ConcurrentHashMap map3 = new 
ConcurrentHashMap(1)
ExecutorService es = Executors.newFixedThreadPool(100)

1.upto(1) {
i ->
es.execute {
AtomicInteger count = map.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

for (Integer i = 0; i < 1; i++) {
es.execute {
AtomicInteger count = map2.get(i)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map2.putIfAbsent(i, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}


for (Integer i = 0; i < 1; i++) {
Integer j = i
es.execute {
AtomicInteger count = map3.get(j)
if (count == null) {
count = new AtomicInteger(0)
AtomicInteger oldCount = map3.putIfAbsent(j, count)
if (oldCount != null) {
count = oldCount
}
}
count.incrementAndGet()
}
}

es.shutdown()
es.awaitTermination(1, TimeUnit.MINUTES)
// println 1
println map.size()
{color:red}// println 6583 ??? size is 0-1 integer
println map2.size(){color}
// println 1
println map3.size()



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (GROOVY-7913) ClassInfo.globalClassValue lead to GroovyClassLoader can't unload classes

2016-08-21 Thread chenxiaojie (JIRA)

 [ 
https://issues.apache.org/jira/browse/GROOVY-7913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenxiaojie updated GROOVY-7913:

Summary: ClassInfo.globalClassValue lead  to GroovyClassLoader can't unload 
classes  (was: ClassInfo.globalClassValue lead  to GroovyClassLoader unload 
classes)

> ClassInfo.globalClassValue lead  to GroovyClassLoader can't unload classes
> --
>
> Key: GROOVY-7913
> URL: https://issues.apache.org/jira/browse/GROOVY-7913
> Project: Groovy
>  Issue Type: Bug
>  Components: class generator
>Affects Versions: 2.4.6
>Reporter: chenxiaojie
>   Original Estimate: 26m
>  Remaining Estimate: 26m
>
> org.codehaus.groovy.reflection.ClassInfo:
> private static final GroovyClassValue globalClassValue = 
> GroovyClassValueFactory.createGroovyClassValue(new ComputeValue(){
>   @Override
>   public ClassInfo computeValue(Class type) {
>   ClassInfo ret = new ClassInfo(type);
>   globalClassSet.add(ret);
>   return ret;
>   }
>   });
> dynamic load groovy classes will be cached in globalClassValue
> can't unload classes
> cause java.lang.OutOfMemoryError: PermGen space



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (GROOVY-7913) ClassInfo.globalClassValue lead to GroovyClassLoader unload classes

2016-08-21 Thread chenxiaojie (JIRA)
chenxiaojie created GROOVY-7913:
---

 Summary: ClassInfo.globalClassValue lead  to GroovyClassLoader 
unload classes
 Key: GROOVY-7913
 URL: https://issues.apache.org/jira/browse/GROOVY-7913
 Project: Groovy
  Issue Type: Bug
  Components: class generator
Affects Versions: 2.4.6
Reporter: chenxiaojie


org.codehaus.groovy.reflection.ClassInfo:

private static final GroovyClassValue globalClassValue = 
GroovyClassValueFactory.createGroovyClassValue(new ComputeValue(){
@Override
public ClassInfo computeValue(Class type) {
ClassInfo ret = new ClassInfo(type);
globalClassSet.add(ret);
return ret;
}
});


dynamic load groovy classes will be cached in globalClassValue
can't unload classes
cause java.lang.OutOfMemoryError: PermGen space



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)