You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by vl...@apache.org on 2019/05/28 06:44:25 UTC
svn commit: r1860178 -
/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java
Author: vladimirsitnikov
Date: Tue May 28 06:44:25 2019
New Revision: 1860178
URL: http://svn.apache.org/viewvc?rev=1860178&view=rev
Log:
Fix race condition in jms.client.ClientPool#clearClient
ClientPool must not close the same client multiple times
even if clearClient is called concurrently
Modified:
jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java
Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java?rev=1860178&r1=1860177&r2=1860178&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java (original)
+++ jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ClientPool.java Tue May 28 06:44:25 2019
@@ -68,8 +68,10 @@ public class ClientPool {
*/
public static void clearClient() {
synchronized (CLIENTS) {
- CLIENTS.forEach(JOrphanUtils::closeQuietly);
+ CLIENTS.forEach(JOrphanUtils::closeQuietly);
+ // Clear should be inside synchronized block to avoid closing the same client
+ // multiple times when clearClient is called from multiple threads concurrently
+ CLIENTS.clear();
}
- CLIENTS.clear();
}
}