I can not continues reproduce this problem, but I do observe it couple of
times:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:762)
at java.util.HashMap$KeyIterator.next(HashMap.java:798)
at
org.apache.jmeter.protocol.jdbc.util.DBConnectionManager.shutdown(DBConnectionManager.java:157)
at
org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.testEnded(JDBCSampler.java:303)
at
org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:165)
at
org.apache.jmeter.engine.StandardJMeterEngine$StopTest.run(StandardJMeterEngine.java:220)
at java.lang.Thread.run(Thread.java:536)
as I inspected the source code on DBConnectionManager:
public void shutdown()
{
log.debug("Running shutdown from "+Thread.currentThread().getName());
synchronized (poolMap)
{
Iterator iter = poolMap.keySet().iterator();
while (iter.hasNext())
{
DBKey key = (DBKey)iter.next();
ConnectionPool pool = (ConnectionPool)
poolMap.remove(key);
pool.close();
}
}
}
it is removing a object when there is an active iterator on the
map..... probabely it could be changed as:
public void shutdown()
{
log.debug("Running shutdown from "+Thread.currentThread().getName());
synchronized (poolMap)
{
Iterator iter = poolMap.keySet().iterator();
while (iter.hasNext())
{
DBKey key = (DBKey)iter.next();
// ConnectionPool pool = (ConnectionPool)
poolMap.remove(key);
pool.close();
}
poolMap.removeAll();
}
}
Eric Li
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]