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


Reply via email to