You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2016/12/28 17:42:52 UTC

svn commit: r1776310 - /jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java

Author: pmouawad
Date: Wed Dec 28 17:42:52 2016
New Revision: 1776310

URL: http://svn.apache.org/viewvc?rev=1776310&view=rev
Log:
Avoid synchronization

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java

Modified: jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java?rev=1776310&r1=1776309&r2=1776310&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java Wed Dec 28 17:42:52 2016
@@ -18,13 +18,12 @@
 
 package org.apache.jmeter.samplers;
 
-import org.apache.log.Logger;
-import org.apache.jorphan.logging.LoggingManager;
-
-import java.util.List;
-import java.util.ArrayList;
 import java.io.ObjectStreamException;
 import java.io.Serializable;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
 
 /**
  * Lars-Erik Helander provided the idea (and original implementation) for the
@@ -35,7 +34,7 @@ public class HoldSampleSender extends Ab
 
     private static final long serialVersionUID = 240L;
 
-    private final List<SampleEvent> sampleStore = new ArrayList<>();
+    private final ConcurrentLinkedQueue<SampleEvent> sampleStore = new ConcurrentLinkedQueue<>();
 
     private final RemoteSampleListener listener;
 
@@ -62,23 +61,18 @@ public class HoldSampleSender extends Ab
             }
             listener.testEnded(host);
             sampleStore.clear();
-        } catch (Throwable ex) {
+        } catch (Error | RuntimeException ex) { // NOSONAR We want to have errors logged in log file
+            log.error("testEnded(host)", ex);
+            throw ex;
+        } catch (Exception ex) { 
             log.error("testEnded(host)", ex);
-            if (ex instanceof Error){
-                throw (Error) ex;
-            }
-            if (ex instanceof RuntimeException){
-                throw (RuntimeException) ex;
-            }
         }
 
     }
 
     @Override
     public void sampleOccurred(SampleEvent e) {
-        synchronized (sampleStore) {
-            sampleStore.add(e);
-        }
+        sampleStore.add(e);
     }
 
     /**