Author: sebb
Date: Tue Nov 11 03:58:12 2008
New Revision: 713023
URL: http://svn.apache.org/viewvc?rev=713023&view=rev
Log:
Synchronise all methods as the class serves multiple threads
Modified:
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java
Modified:
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java?rev=713023&r1=713022&r2=713023&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java
Tue Nov 11 03:58:12 2008
@@ -26,6 +26,9 @@
* ClientPool holds the client instances in an ArrayList. The main purpose of
* this is to make it easier to clean up all the instances at the end of a
test.
* If we didn't do this, threads might become zombie.
+ *
+ * N.B. This class needs to be fully synchronized as it is called from sample
threads
+ * and the thread that runs testEnded() methods.
*/
public class ClientPool {
@@ -39,7 +42,7 @@
*
* @param client
*/
- public static void addClient(ReceiveSubscriber client) {
+ public static synchronized void addClient(ReceiveSubscriber client) {
clients.add(client);
}
@@ -49,7 +52,7 @@
*
* @param client
*/
- public static void addClient(OnMessageSubscriber client) {
+ public static synchronized void addClient(OnMessageSubscriber client) {
clients.add(client);
}
@@ -59,7 +62,7 @@
*
* @param client
*/
- public static void addClient(Publisher client) {
+ public static synchronized void addClient(Publisher client) {
clients.add(client);
}
@@ -71,7 +74,7 @@
* zombie. In those cases, it is not the responsibility of JMeter for those
* bugs.
*/
- public static void clearClient() {
+ public static synchronized void clearClient() {
Iterator itr = clients.iterator();
while (itr.hasNext()) {
Object client = itr.next();
@@ -93,15 +96,15 @@
client_map.clear();
}
- public static void put(Object key, OnMessageSubscriber client) {
+ public static synchronized void put(Object key, OnMessageSubscriber
client) {
client_map.put(key, client);
}
- public static void put(Object key, Publisher client) {
+ public static synchronized void put(Object key, Publisher client) {
client_map.put(key, client);
}
- public static Object get(Object key) {
+ public static synchronized Object get(Object key) {
return client_map.get(key);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]