Author: sebb
Date: Thu Jan 21 00:51:00 2010
New Revision: 901471
URL: http://svn.apache.org/viewvc?rev=901471&view=rev
Log:
Use ConcurrentHashMap instead of Hashtable now we are using Java 1.5
Modified:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/FileReporter.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/HTMLParser.java
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/MessageAdmin.java
Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java?rev=901471&r1=901470&r2=901471&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java Thu Jan 21 00:51:00 2010
@@ -18,8 +18,8 @@
package org.apache.jmeter.timers;
-import java.util.Hashtable;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.testbeans.TestBean;
@@ -72,7 +72,7 @@
//For holding the ThrougputInfo objects for all ThreadGroups. Keyed by ThreadGroup objects
private final static Map<ThreadGroup, ThroughputInfo> threadGroupsInfoMap =
- new Hashtable<ThreadGroup, ThroughputInfo>();
+ new ConcurrentHashMap<ThreadGroup, ThroughputInfo>();
/**
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/FileReporter.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/FileReporter.java?rev=901471&r1=901470&r2=901471&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/FileReporter.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/FileReporter.java Thu Jan 21 00:51:00 2010
@@ -29,9 +29,9 @@
import java.io.FileReader;
import java.io.IOException;
import java.text.DecimalFormat;
-import java.util.Enumeration;
-import java.util.Hashtable;
+import java.util.Map;
import java.util.Vector;
+import java.util.concurrent.ConcurrentHashMap;
import javax.swing.JFrame;
import javax.swing.JLabel;
@@ -50,7 +50,7 @@
public class FileReporter extends JPanel {
private static final Logger log = LoggingManager.getLoggerForClass();
- private final Hashtable<String, Vector<Integer>> data = new Hashtable<String, Vector<Integer>>();
+ private final Map<String, Vector<Integer>> data = new ConcurrentHashMap<String, Vector<Integer>>();
/** initalize a file reporter from a file */
public void init(String file) throws IOException {
@@ -131,19 +131,15 @@
*/
private static class GraphPanel extends JPanel {
// boolean autoScale = true;
- Hashtable<String, Vector<Integer>> data;
+ private final Map<String, Vector<Integer>> data;
- Vector<String> keys = new Vector<String>();
+ private final Vector<String> keys = new Vector<String>();
- Vector<Color> colorList = new Vector<Color>();
+ private final Vector<Color> colorList = new Vector<Color>();
- public GraphPanel(Hashtable<String, Vector<Integer>> data) {
+ public GraphPanel(Map<String, Vector<Integer>> data) {
this.data = data;
- Enumeration<String> e = data.keys();
-
- while (e.hasMoreElements()) {
- String key = e.nextElement();
-
+ for (String key : data.keySet()) {
keys.addElement(key);
}
for (int a = 0x33; a < 0xFF; a += 0x66) {
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java?rev=901471&r1=901470&r2=901471&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java Thu Jan 21 00:51:00 2010
@@ -24,6 +24,7 @@
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.engine.util.NoThreadClone;
@@ -89,8 +90,8 @@
/*
* This map allows summarisers with the same name to contribute to the same totals.
*/
- //@GuardedBy("accumulators")
- private static final Hashtable<String, Totals> accumulators = new Hashtable<String, Totals>();
+ //@GuardedBy("accumulators") - needed to ensure consistency between this and instanceCount
+ private static final Map<String, Totals> accumulators = new ConcurrentHashMap<String, Totals>();
//@GuardedBy("accumulators")
private static int instanceCount; // number of active tests
Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/HTMLParser.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/HTMLParser.java?rev=901471&r1=901470&r2=901471&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/HTMLParser.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/HTMLParser.java Thu Jan 21 00:51:00 2010
@@ -23,6 +23,8 @@
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.logging.LoggingManager;
@@ -55,7 +57,7 @@
protected static final String STYLESHEET = "stylesheet";// $NON-NLS-1$
// Cache of parsers - parsers must be re-usable
- private static final Hashtable<String, HTMLParser> parsers = new Hashtable<String, HTMLParser>(3);
+ private static final Map<String, HTMLParser> parsers = new ConcurrentHashMap<String, HTMLParser>(3);
public static final String PARSER_CLASSNAME = "htmlParser.className"; // $NON-NLS-1$
@@ -73,7 +75,7 @@
return getParser(JMeterUtils.getPropDefault(PARSER_CLASSNAME, DEFAULT_PARSER));
}
- public static final synchronized HTMLParser getParser(String htmlParserClassName) {
+ public static final HTMLParser getParser(String htmlParserClassName) {
// Is there a cached parser?
HTMLParser pars = parsers.get(htmlParserClassName);
Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/MessageAdmin.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/MessageAdmin.java?rev=901471&r1=901470&r2=901471&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/MessageAdmin.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/MessageAdmin.java Thu Jan 21 00:51:00 2010
@@ -18,8 +18,8 @@
package org.apache.jmeter.protocol.jms.sampler;
-import java.util.Hashtable;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import javax.jms.Message;
@@ -33,14 +33,14 @@
public class MessageAdmin {
private static final MessageAdmin SINGLETON = new MessageAdmin();
- private final Map<String, PlaceHolder> table = new Hashtable<String, PlaceHolder>();
+ private final Map<String, PlaceHolder> table = new ConcurrentHashMap<String, PlaceHolder>();
private static final Logger log = LoggingManager.getLoggerForClass();
private MessageAdmin() {
}
- public static synchronized MessageAdmin getAdmin() {
+ public static MessageAdmin getAdmin() {
return SINGLETON;
}
@@ -89,7 +89,7 @@
}
class PlaceHolder {
- private Object request;
+ private final Object request;
private Object reply;
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.