Author: sebb Date: Thu Jan 21 01:34:25 2010 New Revision: 901495 URL: http://svn.apache.org/viewvc?rev=901495&view=rev Log: Use ConcurrentHashMap instead of HashMap for multi-threaded access
Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/DOMPool.java jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/SessionFilter.java Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=901495&r1=901494&r2=901495&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java (original) +++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Thu Jan 21 01:34:25 2010 @@ -25,10 +25,9 @@ import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; -import java.util.Collections; -import java.util.HashMap; import java.util.Map; import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -104,7 +103,7 @@ private transient ObjectTableModel model; private final Map<String, SamplingStatCalculator> tableRows = - Collections.synchronizedMap(new HashMap<String, SamplingStatCalculator>()); + new ConcurrentHashMap<String, SamplingStatCalculator>(); private AxisGraph graphPanel = null; Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java?rev=901495&r1=901494&r2=901495&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java (original) +++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java Thu Jan 21 01:34:25 2010 @@ -25,12 +25,8 @@ import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; -//import java.awt.event.MouseAdapter; -//import java.awt.event.MouseEvent; -//import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -108,7 +104,7 @@ private transient ObjectTableModel model; private final Map<String, SamplingStatCalculator> tableRows = - Collections.synchronizedMap(new HashMap<String, SamplingStatCalculator>()); + new ConcurrentHashMap<String, SamplingStatCalculator>(); public StatVisualizer() { super(); Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java?rev=901495&r1=901494&r2=901495&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java (original) +++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java Thu Jan 21 01:34:25 2010 @@ -25,9 +25,8 @@ import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; -import java.util.Collections; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -102,7 +101,7 @@ private transient ObjectTableModel model; private final Map<String, Calculator> tableRows = - Collections.synchronizedMap(new HashMap<String, Calculator>()); + new ConcurrentHashMap<String, Calculator>(); // Column renderers private static final TableCellRenderer[] RENDERERS = Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java?rev=901495&r1=901494&r2=901495&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java Thu Jan 21 01:34:25 2010 @@ -24,15 +24,14 @@ import java.net.DatagramSocket; import java.net.InetAddress; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; -import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.concurrent.ConcurrentHashMap; import org.apache.jmeter.JMeter; import org.apache.jmeter.testbeans.TestBean; @@ -170,7 +169,7 @@ public StandardJMeterEngine(String host) { this.host = host; - this.allThreads = Collections.synchronizedMap(new HashMap<JMeterThread, Thread>()); + this.allThreads = new ConcurrentHashMap<JMeterThread, Thread>(); // Hack to allow external control engine = this; } Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/DOMPool.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/DOMPool.java?rev=901495&r1=901494&r2=901495&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/DOMPool.java (original) +++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/DOMPool.java Thu Jan 21 01:34:25 2010 @@ -18,7 +18,9 @@ package org.apache.jmeter.protocol.http.util; -import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + import org.w3c.dom.Document; /** @@ -43,7 +45,7 @@ * test on an old system will likely run into memory or CPU problems long * before the HashMap is an issue. */ - private static final HashMap<Object, Document> MEMCACHE = new HashMap<Object, Document>(50); + private static final Map<Object, Document> MEMCACHE = new ConcurrentHashMap<Object, Document>(50); /** * Return a document. @@ -51,7 +53,7 @@ * @param key * @return Document */ - public static synchronized Document getDocument(Object key) { + public static Document getDocument(Object key) { return MEMCACHE.get(key); } @@ -61,7 +63,7 @@ * @param key * @param data */ - public static synchronized void putDocument(Object key, Document data) { + public static void putDocument(Object key, Document data) { MEMCACHE.put(key, data); } Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/SessionFilter.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/SessionFilter.java?rev=901495&r1=901494&r2=901495&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/SessionFilter.java (original) +++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/SessionFilter.java Thu Jan 21 01:34:25 2010 @@ -23,10 +23,10 @@ import java.io.Serializable; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache.jmeter.protocol.http.sampler.HTTPSampler; @@ -87,7 +87,7 @@ public Object clone() { if(cookieManagers == null) { - cookieManagers = Collections.synchronizedMap(new HashMap<String, CookieManager>()); + cookieManagers = new ConcurrentHashMap<String, CookieManager>(); } if(managersInUse == null) { --------------------------------------------------------------------- To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org