You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2010/01/21 02:34:26 UTC

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/

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-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org