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(); } }
