[jira] [Issue Comment Deleted] (GROOVY-8653) foreach index value error
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
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
[ 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
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)