svn commit: r901495 - in /jakarta/jmeter/trunk/src: components/org/apache/jmeter/visualizers/ core/org/apache/jmeter/engine/ protocol/http/org/apache/jmeter/protocol/http/util/ protocol/http/org/apache/jmeter/protocol/http/util/accesslog/

[email protected]
Newsgroups gmane.comp.jakarta.jmeter.devel
Message-ID <[email protected]>
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)
         {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.