Closed GoogleCodeExporter closed 8 years ago
Original comment by virgo47
on 10 Jan 2014 at 1:30
Thank you very much for your report and provided test case. I simplified it for
3.4 where I indeed reproduced the problem as well. I changed the hash map to
ConcurrentHashMap and I was not able to reproduce it anymore.
Changed test case for Java Simon 3.4.0:
package org.javasimon;
import java.util.concurrent.atomic.AtomicInteger;
import org.javasimon.source.AbstractStopwatchSource;
import org.javasimon.source.CachedMonitorSource;
public class SimonPerfTest extends Thread {
private CachedMonitorSource<BadHashString, Stopwatch, BadHashString> cCache;
public static class BadHashString {
public BadHashString() {
}
@Override
public int hashCode() {
return 0;
}
}
private static BadHashString[] acKeys;
private static AtomicInteger m_nRunningThreads = new AtomicInteger(0);
public static void main(String[] args) {
acKeys = new BadHashString[1000];
for (int i = 0; i < acKeys.length; i++) {
acKeys[i] = new BadHashString();
}
AbstractStopwatchSource<BadHashString> cSource = new AbstractStopwatchSource<BadHashString>(SimonManager.manager()) {
@Override
protected String getMonitorName(BadHashString a_cLocation) {
return a_cLocation.toString();
}
};
CachedMonitorSource<BadHashString, Stopwatch, BadHashString> cCache = new CachedMonitorSource<BadHashString, Stopwatch, BadHashString>(cSource) {
@Override
protected BadHashString getLocationKey(BadHashString a_cLocation) {
return a_cLocation;
}
};
for (int i = 0; i < 10; i++) {
new SimonPerfTest(cCache).start();
}
}
private int m_nIndex = 0;
public SimonPerfTest(CachedMonitorSource<BadHashString, Stopwatch, BadHashString> cCache) {
this.cCache = cCache;
}
@Override
public void run() {
System.out.println("Start " + m_nRunningThreads.incrementAndGet());
while (m_nIndex < acKeys.length) {
BadHashString cNext = acKeys[m_nIndex++];
Split cSplit = cCache.getMonitor(cNext).start();
cSplit.stop();
}
System.out.println("End (Remaining: " + m_nRunningThreads.decrementAndGet() + ")");
}
}
Original comment by virgo47
on 10 Jan 2014 at 2:43
Thanks. Looking forward to a new release.
Original comment by alland...@gmail.com
on 11 Jan 2014 at 6:53
Original issue reported on code.google.com by
alland...@gmail.com
on 10 Jan 2014 at 1:13